Module  javafx.base

Class JavaBeanObjectProperty<T>

  • All Implemented Interfaces:
    ObservableJavaBeanProperty<T>ReadOnlyJavaBeanProperty<T>Property<T>ReadOnlyProperty<T>ObservableObjectValue<T>ObservableValue<T>WritableObjectValue<T>WritableValue<T>


    public final class JavaBeanObjectProperty<T>
    extends ObjectProperty<T>
    implements JavaBeanProperty<T>
    一个JavaBeanObjectProperty提供类型的普通的Java Bean属性之间的适配器T和一个JavaFX ObjectProperty<T> 它不能直接创建,但必须使用JavaBeanObjectPropertyBuilder

    至少Java Bean类必须为该属性实现一个getter和一个setter。 该类,以及getter和setter方法必须被声明为public。 如果调用此类的实例的getter,则返回Java Bean的属性。 如果调用setter,该值将被传递给Java Bean属性。 如果Java Bean属性是绑定的(即它支持PropertyChangeListeners),那么这个JavaBeanObjectProperty将会意识到Java Bean中的更改。 否则可以通过致电fireValueChangedEvent()通知有关更改。 如果Java Bean属性也受到约束(即它支持VetoableChangeListeners),则JavaBeanObjectProperty将拒绝更改,如果它绑定到一个ObservableValue<Object>

    将应用程序部署为模块

    如果Java Bean类在一个命名模块中,那么javafx.base模块必须能反映javafx.base 如果模块opens将包含的包至少为javafx.base模块,则可以反射访问类。

    例如,如果com.foo.MyBeanClassfoo.app模块中,则module-info.java可能如下所示:

      module foo.app { opens com.foo to javafx.base; } 

    或者,如果模块exports无条件地包含包,则可以反射地访问类。

    从以下版本开始:
    JavaFX 2.1
    另请参见:
    ObjectPropertyJavaBeanObjectPropertyBuilder
    • 方法详细信息

      • bind

        public void bind​(ObservableValue<? extends T> observable)
        为此创建一个单向绑定Property

        请注意,JavaFX具有通过弱侦听器实现的所有绑定调用。 这意味着bound属性可以被垃圾回收并停止更新。

        Specified by:
        bind在接口 Property<T>
        参数
        observable - 可观察到的这个 Property应该绑定到。
      • getBean

        public Object getBean​()
        返回包含此属性的Object 如果此属性不包含在Object ,则返回null
        Specified by:
        getBean在接口 ReadOnlyProperty<T>
        结果
        包含 Objectnull
      • getName

        public String getName​()
        返回此属性的名称。 如果该属性没有名称,则此方法返回一个空的String
        Specified by:
        getName在接口 ReadOnlyProperty<T>
        结果
        该名称或空的 String
      • addListener

        public void addListener​(ChangeListener<? super T> listener)
        添加一个ChangeListener ,当ObservableValue的值更改时,它将被通知。 如果同一个监听器被多次添加,那么它将被多次通知。 也就是说,没有检查确保唯一性。

        请注意,相同的实际ChangeListener实例可以安全地注册到不同的ObservableValues

        ObservableValue存储对侦听器的强烈引用,这将阻止侦听器被垃圾回收,并可能导致内存泄漏。 建议在使用后通过调用removeListener注销监听器,或者使用WeakChangeListener的实例避免此情况。

        Specified by:
        addListener在接口 ObservableValue<T>
        参数
        listener - listener注册
        另请参见:
        ObservableValue.removeListener(ChangeListener)
      • removeListener

        public void removeListener​(ChangeListener<? super T> listener)
        从监听器列表中删除给定的监听器,当ObservableValue的值发生变化时通知ObservableValue

        如果给定的侦听器以前没有被注册过(即它从未被添加过),那么这个方法调用是一个无操作的。 如果以前已经添加,那么它将被删除。 如果多次添加,那么只有第一次出现将被删除。

        Specified by:
        removeListener在接口 ObservableValue<T>
        参数
        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的值变为无效时通知Observable

        如果给定的侦听器以前没有被注册过(即它从未被添加过),那么这个方法调用是一个无操作的。 如果以前已经添加,那么它将被删除。 如果多次添加,那么只有第一次出现将被删除。

        Specified by:
        removeListener在接口 Observable
        参数
        listener - 要删除的侦听器
        另请参见:
        Observable.addListener(InvalidationListener)
      • fireValueChangedEvent

        public void fireValueChangedEvent​()
        如果Java Bean属性未绑定(即它不支持PropertyChangeListeners),则可以调用此方法来通知适配器更改Java Bean值。
        Specified by:
        fireValueChangedEvent在接口 ReadOnlyJavaBeanProperty<T>
      • dispose

        public void dispose​()
        信号到JavaFX属性,它将不再被使用,任何引用都可以被删除。 此方法的调用通常导致属性停止通过注销其监听器来观察Java Bean属性。
        Specified by:
        dispose在接口 ReadOnlyJavaBeanProperty<T>
      • toString

        public String toString​()
        返回此 JavaBeanObjectProperty对象的字符串表示形式。
        重写:
        toStringObjectProperty<T>
        结果
        a string representation of this JavaBeanObjectProperty object.