-
- 参数类型
-
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
,ReadOnlyJavaBeanFloatProperty
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
- 另请参见:
-
ObservableBooleanValue
,ObservableDoubleValue
,ObservableFloatValue
,ObservableIntegerValue
,ObservableLongValue
,ObservableNumberValue
,ObservableObjectValue
,ObservableStringValue
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 void
addListener(ChangeListener<? super T> listener)
添加一个ChangeListener
,当ObservableValue
的值发生变化时,它将被通知。T
getValue()
返回此ObservableValue
的当前值void
removeListener(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
的当前值- 结果
- 当前值
-
-