public abstract class ObservableValueBase<T> extends Object implements ObservableValue<T>
ObservableValue
.
It contains all of the infrastructure support for value invalidation- and
change event notification.
This implementation can handle adding and removing listeners while the
observers are being notified, but it is not thread-safe.Constructor and Description |
---|
ObservableValueBase() |
Modifier and Type | Method and Description |
---|---|
void |
addListener(ChangeListener<? super T> listener)
Adds a
ChangeListener which will be notified whenever the value
of the ObservableValue changes. |
void |
addListener(InvalidationListener listener)
Adds an
InvalidationListener which will be notified whenever the
Observable becomes invalid. |
protected void |
fireValueChangedEvent()
Notify the currently registered observers of a value change.
|
void |
removeListener(ChangeListener<? super T> listener)
Removes the given listener from the list of listeners, that are notified
whenever the value of the
ObservableValue changes. |
void |
removeListener(InvalidationListener listener)
Removes the given listener from the list of listeners, that are notified
whenever the value of the
Observable becomes invalid. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getValue
public void addListener(InvalidationListener listener)
InvalidationListener
which will be notified whenever the
Observable
becomes invalid. If the same
listener is added more than once, then it will be notified more than
once. That is, no check is made to ensure uniqueness.
Note that the same actual InvalidationListener
instance may be
safely registered for different Observables
.
The Observable
stores a strong reference to the listener
which will prevent the listener from being garbage collected and may
result in a memory leak. It is recommended to either unregister a
listener by calling removeListener
after use or to use an instance of
WeakInvalidationListener
avoid this situation.
addListener
in interface Observable
listener
- The listener to registerObservable.removeListener(InvalidationListener)
public void addListener(ChangeListener<? super T> listener)
ChangeListener
which will be notified whenever the value
of the ObservableValue
changes. If the same listener is added
more than once, then it will be notified more than once. That is, no
check is made to ensure uniqueness.
Note that the same actual ChangeListener
instance may be safely
registered for different ObservableValues
.
The ObservableValue
stores a strong reference to the listener
which will prevent the listener from being garbage collected and may
result in a memory leak. It is recommended to either unregister a
listener by calling removeListener
after use or to use an instance of
WeakChangeListener
avoid this situation.
addListener
in interface ObservableValue<T>
listener
- The listener to registerObservableValue.removeListener(ChangeListener)
public void removeListener(InvalidationListener listener)
Observable
becomes invalid.
If the given listener has not been previously registered (i.e. it was never added) then this method call is a no-op. If it had been previously added then it will be removed. If it had been added more than once, then only the first occurrence will be removed.
removeListener
in interface Observable
listener
- The listener to removeObservable.addListener(InvalidationListener)
public void removeListener(ChangeListener<? super T> listener)
ObservableValue
changes.
If the given listener has not been previously registered (i.e. it was never added) then this method call is a no-op. If it had been previously added then it will be removed. If it had been added more than once, then only the first occurrence will be removed.
removeListener
in interface ObservableValue<T>
listener
- The listener to removeObservableValue.addListener(ChangeListener)
protected void fireValueChangedEvent()
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 2008, 2020, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.