Интерфейс ObservableValue<T>
Параметры типа:
T — тип обернутого значения.
Все суперинтерфейсы:
Все известные подинтерфейсы:
Binding<T>, JavaBeanProperty<T>, NumberBinding, NumberExpression, ObservableBooleanValue, ObservableDoubleValue, ObservableFloatValue, ObservableIntegerValue, ObservableListValue<E>, ObservableLongValue, ObservableMapValue<K,V>, ObservableNumberValue, ObservableObjectValue<T>, ObservableSetValue<E>, ObservableStringValue, Property<T>, ReadOnlyJavaBeanProperty<T>, ReadOnlyProperty<T>, TextInputControl.Content
Все известные реализующие классы:
BooleanBinding, BooleanExpression, BooleanProperty, BooleanPropertyBase, DoubleBinding, DoubleExpression, DoubleProperty, DoublePropertyBase, FloatBinding, FloatExpression, FloatProperty, FloatPropertyBase, IntegerBinding, IntegerExpression, IntegerProperty, IntegerPropertyBase, JavaBeanBooleanProperty, JavaBeanDoubleProperty, JavaBeanFloatProperty, JavaBeanIntegerProperty, JavaBeanLongProperty, JavaBeanObjectProperty, JavaBeanStringProperty, ListBinding, ListExpression, ListProperty, ListPropertyBase, LongBinding, LongExpression, LongProperty, LongPropertyBase, MapBinding, MapExpression, MapProperty, MapPropertyBase, NumberExpressionBase, ObjectBinding, ObjectExpression, ObjectProperty, ObjectPropertyBase, ObservableValueBase, ReadOnlyBooleanProperty, ReadOnlyBooleanPropertyBase, ReadOnlyBooleanWrapper, ReadOnlyDoubleProperty, ReadOnlyDoublePropertyBase, ReadOnlyDoubleWrapper, ReadOnlyFloatProperty, ReadOnlyFloatPropertyBase, ReadOnlyFloatWrapper, ReadOnlyIntegerProperty, ReadOnlyIntegerPropertyBase, ReadOnlyIntegerWrapper, ReadOnlyJavaBeanBooleanProperty, ReadOnlyJavaBeanDoubleProperty, ReadOnlyJavaBeanFloatProperty, ReadOnlyJavaBeanIntegerProperty, ReadOnlyJavaBeanLongProperty, ReadOnlyJavaBeanObjectProperty, ReadOnlyJavaBeanStringProperty, ReadOnlyListProperty, ReadOnlyListPropertyBase, ReadOnlyListWrapper, ReadOnlyLongProperty, ReadOnlyLongPropertyBase, ReadOnlyLongWrapper, ReadOnlyMapProperty, ReadOnlyMapPropertyBase, ReadOnlyMapWrapper, ReadOnlyObjectProperty, ReadOnlyObjectPropertyBase, ReadOnlyObjectWrapper, ReadOnlySetProperty, ReadOnlySetPropertyBase, ReadOnlySetWrapper, ReadOnlyStringProperty, ReadOnlyStringPropertyBase, ReadOnlyStringWrapper, SetBinding, SetExpression, SetProperty, SetPropertyBase, SimpleBooleanProperty, SimpleDoubleProperty, SimpleFloatProperty, SimpleIntegerProperty, SimpleListProperty, SimpleLongProperty, SimpleMapProperty, SimpleObjectProperty, SimpleSetProperty, SimpleStringProperty, SimpleStyleableBooleanProperty, SimpleStyleableDoubleProperty, SimpleStyleableFloatProperty, SimpleStyleableIntegerProperty, SimpleStyleableLongProperty, SimpleStyleableObjectProperty, SimpleStyleableStringProperty, StringBinding, StringExpression, StringProperty, StringPropertyBase, StyleableBooleanProperty, StyleableDoubleProperty, StyleableFloatProperty, StyleableIntegerProperty, StyleableLongProperty, StyleableObjectProperty, StyleableStringProperty
public interface ObservableValue<T> extends Observable
ObservableValue — это сущность, которая оборачивает значение и позволяет наблюдать за изменениями этого значения. В общем случае этот интерфейс не следует реализовывать напрямую, а использовать один из его подинтерфейсов (например, ObservableBooleanValue и т. д.). Значение ObservableValue можно получить с помощью getValue().
Реализация ObservableValue может поддерживать ленивую вычисление, что означает, что значение не пересчитывается сразу после изменения, а лениво — в следующий раз при запросе значения. Все привязки и свойства в этой библиотеке поддерживают ленивое вычисление.
Объект ObservableValue генерирует два типа событий: события изменения и события инвалидации. Событие изменения указывает на то, что значение изменилось. Событие инвалидации генерируется, если текущее значение больше не является действительным. Это различие становится важным, если ObservableValue поддерживает ленивую вычисление, потому что для лениво вычисляемого значения неизвестно, действительно ли неверное значение изменилось, пока оно не будет пересчитано. По этой причине для генерации событий изменения требуется жадное вычисление, а события инвалидации могут генерироваться для жадных и ленивых реализаций.
Реализации данного класса должны стремиться генерировать как можно меньше событий, чтобы избежать излишней траты времени в обработчиках событий. Реализации в этой библиотеке отмечают себя как недействительные при возникновении первого события инвалидации. Они больше не генерируют событий инвалидации до тех пор, пока их значение не будет пересчитано и станет действительным снова.
К объекту ObservableValue можно прикрепить два типа слушателей: InvalidationListener для прослушивания событий инвалидации и ChangeListener для прослушивания событий изменения.
Важное примечание: прикрепление ChangeListener принудительно выполняет жадное вычисление даже в том случае, если реализация ObservableValue поддерживает ленивое вычисление.
С момента:
JavaFX 2.0
-
Краткое описание методов
Все методыМетоды экземпляраАбстрактные методы Модификатор и тип Метод и описание voidaddListener(ChangeListener<? super T> listener)Добавляет слушателяChangeListener, который будет уведомляться всякий раз, когда изменяется значениеObservableValue.TgetValue()Возвращает текущее значение этогоObservableValuevoidremoveListener(ChangeListener<? super T> listener)Удаляет указанного слушателя из списка слушателей, которые уведомляются всякий раз, когда изменяется значениеObservableValue.-
Методы, унаследованные от интерфейса javafx.beans.Observable
addListener, removeListener
-
-
Подробное описание методов
-
addListener
void addListener(ChangeListener<? super T> listener)
Добавляет слушателяChangeListener, который будет уведомляться всякий раз, когда изменяется значениеObservableValue. Если один и тот же слушатель добавляется более одного раза, он будет уведомляться более одного раза. Проверка на уникальность не выполняется.Обратите внимание, что один и тот же экземпляр
ChangeListenerможет быть безопасно зарегистрирован для разныхObservableValues.ObservableValueхранит сильную ссылку на слушателя, что предотвращает сборку мусора слушателя и может привести к утечке памяти. Рекомендуется либо отменить регистрацию слушателя, вызвавremoveListenerпосле использования, либо использовать экземплярWeakChangeListener, чтобы избежать этой ситуации.Параметры:
listener- Слушатель для регистрацииИсключения:
NullPointerException- если слушатель равен nullСм. также:
-
removeListener
void removeListener(ChangeListener<? super T> listener)
Удаляет указанного слушателя из списка слушателей, которые уведомляются всякий раз, когда изменяется значениеObservableValue.Если данный слушатель ранее не был зарегистрирован (т.е. никогда не добавлялся), то вызов этого метода не производит никаких действий. Если он был добавлен ранее, он будет удален. Если он был добавлен более одного раза, то будет удалено только первое его появление.
Параметры:
listener- Слушатель для удаленияИсключения:
NullPointerException- если слушатель равен nullСм. также:
-
getValue
T getValue()
Возвращает текущее значение этогоObservableValueВозвращает:
Текущее значение
-
© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.