- java.lang.Object
-
- javafx.beans.binding.StringExpression
-
- javafx.beans.property.ReadOnlyStringProperty
-
- javafx.beans.property.StringProperty
-
- javafx.beans.property.adapter.JavaBeanStringProperty
-
- All Implemented Interfaces:
-
Observable
,JavaBeanProperty<String>
,ReadOnlyJavaBeanProperty<String>
,Property<String>
,ReadOnlyProperty<String>
,ObservableObjectValue<String>
,ObservableStringValue
,ObservableValue<String>
,WritableObjectValue<String>
,WritableStringValue
,WritableValue<String>
public final class JavaBeanStringProperty extends StringProperty implements JavaBeanProperty<String>
AJavaBeanStringProperty
在类型为String
的常规Java Bean属性和JavaFXStringProperty
之间提供了一个适配器。 它不能直接创建,但必须使用JavaBeanStringPropertyBuilder
。至少Java Bean类必须为该属性实现一个getter和一个setter。 该类,以及getter和setter方法必须被声明为public。 如果调用此类的实例的getter,则返回Java Bean的属性。 如果调用setter,该值将被传递给Java Bean属性。 如果Java Bean属性是绑定的(即它支持PropertyChangeListeners),那么这个
JavaBeanStringProperty
将会意识到Java Bean中的更改。 否则可以通过致电fireValueChangedEvent()
通知有关更改。 如果Java Bean属性也受到约束(即它支持VetoableChangeListeners),则JavaBeanStringProperty
将拒绝更改,如果它绑定到一个ObservableValue<String>
。将应用程序部署为模块
如果Java Bean类在命名模块中,那么
javafx.base
模块必须能反映javafx.base
。 如果模块opens
包含至少包含javafx.base
模块,则类可以反射访问。例如,如果
com.foo.MyBeanClass
在foo.app
模块中,则module-info.java
可能如下所示:module foo.app { opens com.foo to javafx.base; }
或者,如果模块
exports
无条件地包含包,则可以反射访问类。- 从以下版本开始:
- JavaFX 2.1
- 另请参见:
-
StringProperty
,JavaBeanStringPropertyBuilder
-
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 void
addListener(InvalidationListener listener)
添加一个InvalidationListener
,当Observable
无效时,它将被通知。void
addListener(ChangeListener<? super String> listener)
添加一个ChangeListener
,当ObservableValue
的值更改时,它将被通知。void
bind(ObservableValue<? extends String> observable)
为此创建一个单向绑定Property
。void
dispose()
信号到JavaFX属性,它将不再被使用,任何引用都可以被删除。void
fireValueChangedEvent()
如果Java Bean属性未绑定(即它不支持PropertyChangeListeners),则可以调用此方法来通知适配器更改Java Bean值。String
get()
获取包装的值。Object
getBean()
返回包含此属性的Object
。String
getName()
返回此属性的名称。boolean
isBound()
可以用来检查,如果一个Property
是绑定的。void
removeListener(InvalidationListener listener)
从监听器列表中删除给定的监听器,当Observable
的值变为无效时通知Observable
。void
removeListener(ChangeListener<? super String> listener)
从监听器列表中删除给定的监听器,每当ObservableValue
的值发生变化时通知该ObservableValue
。void
set(String value)
设置包装的值。void
unbind()
删除这个Property
的单向绑定。-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface javafx.beans.value.ObservableValue
getValue
-
Methods inherited from interface javafx.beans.property.Property
bindBidirectional, unbindBidirectional
-
Methods inherited from class javafx.beans.binding.StringExpression
concat, getValue, getValueSafe, greaterThan, greaterThan, greaterThanOrEqualTo, greaterThanOrEqualTo, isEmpty, isEqualTo, isEqualTo, isEqualToIgnoreCase, isEqualToIgnoreCase, isNotEmpty, isNotEqualTo, isNotEqualTo, isNotEqualToIgnoreCase, isNotEqualToIgnoreCase, isNotNull, isNull, length, lessThan, lessThan, lessThanOrEqualTo, lessThanOrEqualTo, stringExpression
-
Methods inherited from class javafx.beans.property.StringProperty
bindBidirectional, bindBidirectional, bindBidirectional, setValue, toString, unbindBidirectional, unbindBidirectional
-
Methods inherited from interface javafx.beans.value.WritableValue
getValue, setValue
-
-
-
-
方法详细信息
-
get
public String get()
获取包装的值。 这必须与从WritableValue.getValue()
返回的值相同。此方法仅存在于将WritableObjectValue API与
WritableBooleanValue
和WritableNumberValue
的子类对齐- Specified by:
-
get
在接口ObservableObjectValue<String>
- Specified by:
-
get
在接口WritableObjectValue<String>
- 结果
- 当前值
- 异常
-
UndeclaredThrowableException
- 如果调用Java Bean属性的getter抛出一个IllegalAccessException
或一个InvocationTargetException
。
-
set
public void set(String value)
设置包装的值。 应相当于WritableValue.setValue(java.lang.Object)
- Specified by:
-
set
在接口WritableObjectValue<String>
- 参数
-
value
- 新值 - 异常
-
UndeclaredThrowableException
- 如果调用Java Bean属性的getter抛出一个IllegalAccessException
或一个InvocationTargetException
。 - 另请参见:
-
WritableObjectValue.get()
-
bind
public void bind(ObservableValue<? extends String> observable)
为此创建一个单向绑定Property
。请注意,JavaFX具有通过弱侦听器实现的所有绑定调用。 这意味着bound属性可以被垃圾回收并停止更新。
-
unbind
public void unbind()
删除此Property
的单向绑定。 如果Property
未绑定,则调用此方法没有任何作用。- Specified by:
-
unbind
在接口Property<String>
- 另请参见:
-
Property.bind(javafx.beans.value.ObservableValue)
-
isBound
public boolean isBound()
可以用来检查,如果一个Property
是绑定的。- Specified by:
-
isBound
在接口Property<String>
- 结果
-
true
如果Property
是绑定的,false
否则 - 另请参见:
-
Property.bind(javafx.beans.value.ObservableValue)
-
getBean
public Object getBean()
返回包含此属性的Object
。 如果此属性未包含在Object
,则返回null
。- Specified by:
-
getBean
在接口ReadOnlyProperty<String>
- 结果
-
包含
Object
或null
-
getName
public String getName()
返回此属性的名称。 如果该属性没有名称,此方法返回一个空的String
。- Specified by:
-
getName
在接口ReadOnlyProperty<String>
- 结果
-
该名称或空的
String
-
addListener
public void addListener(ChangeListener<? super String> listener)
添加一个ChangeListener
,当ObservableValue
的值更改时,它将被通知。 如果同一个监听器被多次添加,那么它将被多次通知。 也就是说,没有检查确保唯一性。请注意,相同的实际
ChangeListener
实例可以安全地注册到不同的ObservableValues
。ObservableValue
存储对侦听器的强烈引用,这将阻止侦听器被垃圾回收,并可能导致内存泄漏。 建议您在使用后通过调用removeListener
取消注册监听器,或者使用WeakChangeListener
的实例避免此情况。- Specified by:
-
addListener
在接口ObservableValue<String>
- 参数
-
listener
-listener
注册 - 另请参见:
-
ObservableValue.removeListener(ChangeListener)
-
removeListener
public void removeListener(ChangeListener<? super String> listener)
从监听器列表中删除给定的侦听器,每当ObservableValue
的值更改时都会通知ObservableValue
。如果给定的侦听器以前没有被注册过(即它从未被添加过),那么这个方法调用是一个无操作的。 如果以前已经添加,那么它将被删除。 如果多次添加,那么只有第一次出现将被删除。
- Specified by:
-
removeListener
在接口ObservableValue<String>
- 参数
-
listener
- 要删除的侦听器 - 另请参见:
-
ObservableValue.addListener(ChangeListener)
-
addListener
public void addListener(InvalidationListener listener)
添加一个InvalidationListener
,当Observable
无效时,它将被通知。 如果同一个监听器被多次添加,那么它将被多次通知。 也就是说,没有检查确保唯一性。请注意,相同的实际
InvalidationListener
实例可能会安全注册为不同的Observables
。Observable
存储对侦听器的强引用,这将阻止侦听器被垃圾回收,并可能导致内存泄漏。 建议您在使用后通过调用removeListener
注销监听器,或者使用WeakInvalidationListener
的实例避免此情况。- Specified by:
-
addListener
在接口Observable
- 参数
-
listener
-listener
注册 - 另请参见:
-
Observable.removeListener(InvalidationListener)
-
removeListener
public void removeListener(InvalidationListener listener)
从监听器列表中删除给定的侦听器,当Observable
的值变为无效时,它们将被通知。如果给定的侦听器以前没有被注册过(即它从未被添加过),那么这个方法调用是一个无操作的。 如果以前已经添加,那么它将被删除。 如果多次添加,那么只有第一次出现将被删除。
- Specified by:
-
removeListener
在接口Observable
- 参数
-
listener
- 要删除的侦听器 - 另请参见:
-
Observable.addListener(InvalidationListener)
-
fireValueChangedEvent
public void fireValueChangedEvent()
如果Java Bean属性未绑定(即它不支持PropertyChangeListeners),则可以调用此方法来通知适配器更改Java Bean值。- Specified by:
-
fireValueChangedEvent
在接口ReadOnlyJavaBeanProperty<String>
-
dispose
public void dispose()
信号到JavaFX属性,它将不再被使用,任何引用都可以被删除。 此方法的调用通常导致属性停止通过注销其监听器来观察Java Bean属性。- Specified by:
-
dispose
在接口ReadOnlyJavaBeanProperty<String>
-
-