-
- 参数类型
-
T- 包装值的类型。
- All Superinterfaces:
-
Observable
- All Known Subinterfaces:
-
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,ReadOnlyJavaBeanFloatPropertyReadOnlyJavaBeanFloatProperty,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
- 另请参见:
-
ObservableBooleanValue,ObservableDoubleValue,ObservableFloatValue,ObservableIntegerValue,ObservableLongValue,ObservableNumberValue,ObservableObjectValue,ObservableStringValue
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 voidaddListener(ChangeListener<? super T> listener)添加一个ChangeListener,当ObservableValue的值发生变化时,它将被通知。TgetValue()返回此ObservableValue的当前值voidremoveListener(ChangeListener<? super T> listener)从监听器列表中删除给定的监听器,每当ObservableValue的值发生变化时通知ObservableValue。-
Methods inherited from interface javafx.beans.Observable
addListener, removeListener
-
-
-
-
方法详细信息
-
addListener
void addListener(ChangeListener<? super T> listener)
添加一个ChangeListener,当ObservableValue的值更改时,它将被通知。 如果同一个监听器被多次添加,那么它将被多次通知。 也就是说,没有检查确保唯一性。请注意,相同的实际
ChangeListener实例可能会安全注册为不同的ObservableValues。ObservableValue存储对侦听器的强烈引用,这将阻止侦听器被垃圾回收,并可能导致内存泄漏。 建议您在使用后通过调用removeListener取消注册监听器,或使用WeakChangeListener的实例避免此情况。- 参数
-
listener-listener注册 - 异常
-
NullPointerException- 如果侦听器为空 - 另请参见:
-
removeListener(ChangeListener)
-
removeListener
void removeListener(ChangeListener<? super T> listener)
从监听器列表中删除给定的监听器,当ObservableValue的值发生更改时通知ObservableValue。如果给定的侦听器以前没有被注册过(即它从未被添加过),那么这个方法调用是一个无操作的。 如果以前已经添加,那么它将被删除。 如果多次添加,那么只有第一次出现将被删除。
- 参数
-
listener- 要删除的侦听器 - 异常
-
NullPointerException- 如果侦听器为空 - 另请参见:
-
addListener(ChangeListener)
-
getValue
T getValue()
返回此ObservableValue的当前值- 结果
- 当前值
-
-