Интерфейс ObservableValue<T>
- Параметры типа:
-
T- Тип обернутого значения.
- Все суперинтерфейсы:
Observable
- Все известные дочерние интерфейсы:
-
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 может поддерживать ленивую оценку, что означает, что значение не пересчитывается немедленно после изменений, а лениво — в следующий раз, когда значение запрашивается (см. примечание 1 в «Требованиях к реализации»).
Объект ObservableValue генерирует два типа событий: события изменения и события инвалидации. Событие изменения указывает на то, что значение изменилось (см. примечание 2 в «Требованиях к реализации»). Событие инвалидации генерируется, если текущее значение больше не является допустимым. Это различие становится важным, если ObservableValue поддерживает ленивую оценку, потому что для лениво оцениваемого значения неизвестно, действительно ли изменилось некорректное значение, пока оно не пересчитается. По этой причине для генерации событий изменения требуется жадная оценка, а события инвалидации могут генерироваться как для жадных, так и для ленивых реализаций.
Реализации этого класса должны стремиться генерировать как можно меньше событий, чтобы не тратить слишком много времени на обработчики событий. Реализации в этой библиотеке отмечают себя как недействительные при первом возникновении события инвалидации. Они не генерируют больше событий инвалидации, пока их значение не будет пересчитано и не станет действительным снова.
К объекту ObservableValue можно подключить два типа слушателей: InvalidationListener для прослушивания событий инвалидации и ChangeListener для прослушивания событий изменения.
Важное примечание: подключение ChangeListener принудительно выполняет жадную вычисление, даже если реализация ObservableValue поддерживает ленивую оценку.
- Требования к реализации:
- Все привязки и свойства в библиотеке JavaFX поддерживают ленивую оценку.
- Все реализующие классы в библиотеке JavaFX проверяют изменение, используя равенство ссылок (а не равенство объектов,
Object#equals(Object)) значения.
- С:
- JavaFX 2.0
- См. также:
-
ObservableBooleanValue,ObservableDoubleValue,ObservableFloatValue,ObservableIntegerValue,ObservableLongValue,ObservableNumberValue,ObservableObjectValue,ObservableStringValue
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void | addListener(ChangeListener<? super T> listener) | Добавляет ChangeListener, который будет уведомляться всякий раз, когда значение ObservableValue изменяется. |
T | getValue() | Возвращает текущее значение этого объекта ObservableValue
|
void | removeListener(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(ChangeListener)
removeListener
void removeListener(ChangeListener<? super T> listener)
ObservableValue изменяется. Если указанный слушатель ранее не был зарегистрирован (т.е. его никогда не добавляли), то этот вызов метода является пустой операцией. Если он был добавлен ранее, то он будет удален. Если он был добавлен более одного раза, то будет удален только первый экземпляр.
- Параметры:
-
listener- Удаляемый слушатель - Исключения:
-
NullPointerException- если слушатель равен null - См. также:
addListener(ChangeListener)
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.