Module javafx.base

Class ReadOnlyJavaBeanObjectProperty<T>

Type Parameters:
T - the type of the wrapped Object
All Implemented Interfaces:
Observable, ReadOnlyJavaBeanProperty<T>, ReadOnlyProperty<T>, ObservableObjectValue<T>, ObservableValue<T>

public final class ReadOnlyJavaBeanObjectProperty<T>
extends ReadOnlyObjectPropertyBase<T>
implements ReadOnlyJavaBeanProperty<T>
A ReadOnlyJavaBeanObjectProperty provides an adapter between a regular read only Java Bean property of T and a JavaFX ReadOnlyObjectProperty. It cannot be created directly, but a ReadOnlyJavaBeanObjectPropertyBuilder has to be used.

As a minimum, the Java Bean class must implement a getter for the property. The class, as well as the getter method, must be declared public. If the getter of an instance of this class is called, the property of the Java Bean is returned. If the Java Bean property is bound (i.e. it supports PropertyChangeListeners), this ReadOnlyJavaBeanObjectProperty will be aware of changes in the Java Bean. Otherwise it can be notified about changes by calling fireValueChangedEvent().

Deploying an Application as a Module

If the Java Bean class is in a named module, then it must be reflectively accessible to the javafx.base module. A class is reflectively accessible if the module opens the containing package to at least the javafx.base module.

For example, if com.foo.MyBeanClass is in the foo.app module, the module-info.java might look like this:

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

Alternatively, a class is reflectively accessible if the module exports the containing package unconditionally.

Since:
JavaFX 2.1
See Also:
ReadOnlyObjectProperty, ReadOnlyJavaBeanObjectPropertyBuilder
  • Method Details

    • get

      public T get()
      Returns the current value of this ObservableObjectValue<T>.
      Specified by:
      get in interface ObservableObjectValue<T>
      Returns:
      The current value
      Throws:
      UndeclaredThrowableException - if calling the getter of the Java Bean property throws an IllegalAccessException or an InvocationTargetException.
    • getBean

      public Object getBean()
      Returns the Object that contains this property. If this property is not contained in an Object, null is returned.
      Specified by:
      getBean in interface ReadOnlyProperty<T>
      Returns:
      the containing Object or null
    • getName

      public String getName()
      Returns the name of this property. If the property does not have a name, this method returns an empty String.
      Specified by:
      getName in interface ReadOnlyProperty<T>
      Returns:
      the name or an empty String
    • fireValueChangedEvent

      public void fireValueChangedEvent()
      Sends notifications to all attached InvalidationListeners and ChangeListeners. This method needs to be called, if the value of this property changes.
      Specified by:
      fireValueChangedEvent in interface ReadOnlyJavaBeanProperty<T>
      Overrides:
      fireValueChangedEvent in class ReadOnlyObjectPropertyBase<T>
    • dispose

      public void dispose()
      Signals to the JavaFX property that it will not be used anymore and any references can be removed. A call of this method usually results in the property stopping to observe the Java Bean property by unregistering its listener(s).
      Specified by:
      dispose in interface ReadOnlyJavaBeanProperty<T>