Module javafx.base

Class WeakChangeListener<T>

  • Type Parameters:
    T - The type of the observed value
    All Implemented Interfaces:
    ChangeListener<T>, WeakListener


    public final class WeakChangeListener<T>
    extends Object
    implements ChangeListener<T>, WeakListener
    A WeakChangeListener can be used, if an ObservableValue should only maintain a weak reference to the listener. This helps to avoid memory leaks, that can occur if observers are not unregistered from observed objects after use.

    WeakChangeListener are created by passing in the original ChangeListener. The WeakChangeListener should then be registered to listen for changes of the observed object.

    Note: You have to keep a reference to the ChangeListener, that was passed in as long as it is in use, otherwise it will be garbage collected to soon.

    Since:
    JavaFX 2.0
    See Also:
    ChangeListener, ObservableValue
    • Constructor Detail

      • WeakChangeListener

        public WeakChangeListener​(ChangeListener<T> listener)
        The constructor of WeakChangeListener.
        Parameters:
        listener - The original listener that should be notified
    • Method Detail

      • wasGarbageCollected

        public boolean wasGarbageCollected​()
        Returns true if the linked listener was garbage-collected. In this case, the listener can be removed from the observable.
        Specified by:
        wasGarbageCollected in interface WeakListener
        Returns:
        true if the linked listener was garbage-collected.
      • changed

        public void changed​(ObservableValue<? extends T> observable,
                            T oldValue,
                            T newValue)
        This method needs to be provided by an implementation of ChangeListener. It is called if the value of an ObservableValue changes.

        In general is is considered bad practice to modify the observed value in this method.

        Specified by:
        changed in interface ChangeListener<T>
        Parameters:
        observable - The ObservableValue which value changed
        oldValue - The old value
        newValue - The new value