Class DoubleBinding
- All Implemented Interfaces:
-
Binding<Number>,NumberBinding,NumberExpression,Observable,ObservableDoubleValue,ObservableNumberValue,ObservableValue<Number>
public abstract class DoubleBinding extends DoubleExpression implements NumberBinding
Binding of a double value. DoubleBinding provides a simple invalidation-scheme. An extending class can register dependencies by calling bind(Observable...). If One of the registered dependencies becomes invalid, this DoubleBinding is marked as invalid. With unbind(Observable...) listening to dependencies can be stopped.
To provide a concrete implementation of this class, the method computeValue() has to be implemented to calculate the value of this binding based on the current state of the dependencies. It is called when get() is called for an invalid binding.
Below is a simple example of a DoubleBinding calculating the square- root of a ObservableNumberValue moo.
final ObservableDoubleValue moo = ...;
DoubleBinding foo = new DoubleBinding() {
{
super.bind(moo);
}
@Override
protected double computeValue() {
return Math.sqrt(moo.getValue());
}
};
Following is the same example with implementations for the optional methods Binding.getDependencies() and Binding.dispose().
final ObservableDoubleValue moo = ...;
DoubleBinding foo = new DoubleBinding() {
{
super.bind(moo);
}
@Override
protected double computeValue() {
return Math.sqrt(moo.getValue());
}
@Override
public ObservableList<?> getDependencies() {
return FXCollections.singletonObservableList(moo);
}
@Override
public void dispose() {
super.unbind(moo);
}
};
- Since:
- JavaFX 2.0
- See Also:
Constructor Summary
| Constructor | Description |
|---|---|
DoubleBinding() |
Creates a default DoubleBinding. |
Method Summary
| Modifier and Type | Method | Description |
|---|---|---|
void |
addListener |
Adds an InvalidationListener which will be notified whenever the Observable becomes invalid. |
void |
addListener |
Adds a ChangeListener which will be notified whenever the value of the ObservableValue changes. |
protected final void |
bind |
Start observing the dependencies for changes. |
protected abstract double |
computeValue() |
Calculates the current value of this binding. |
void |
dispose() |
A default implementation of dispose() that is empty. |
final double |
get() |
Returns the result of computeValue(). |
ObservableList<?> |
getDependencies() |
A default implementation of getDependencies() that returns an empty ObservableList. |
final void |
invalidate() |
Mark a binding as invalid. |
final boolean |
isValid() |
Checks if a binding is valid. |
protected void |
onInvalidating() |
The method onInvalidating() can be overridden by extending classes to react, if this binding becomes invalid. |
void |
removeListener |
Removes the given listener from the list of listeners, that are notified whenever the value of the Observable becomes invalid. |
void |
removeListener |
Removes the given listener from the list of listeners that are notified whenever the value of the ObservableValue changes. |
String |
toString() |
Returns a string representation of this DoubleBinding object. |
protected final void |
unbind |
Stop observing the dependencies for changes. |
Methods declared in class javafx.beans.binding.DoubleExpression
add, add, add, add, add, asObject, divide, divide, divide, divide, divide, doubleExpression, doubleExpression, doubleValue, floatValue, getValue, intValue, longValue, multiply, multiply, multiply, multiply, multiply, negate, subtract, subtract, subtract, subtract, subtract
Methods declared in class javafx.beans.binding.NumberExpressionBase
asString, asString, asString, greaterThan, greaterThan, greaterThan, greaterThan, greaterThan, greaterThanOrEqualTo, greaterThanOrEqualTo, greaterThanOrEqualTo, greaterThanOrEqualTo, greaterThanOrEqualTo, isEqualTo, isEqualTo, isEqualTo, isEqualTo, isEqualTo, isEqualTo, isEqualTo, isEqualTo, isNotEqualTo, isNotEqualTo, isNotEqualTo, isNotEqualTo, isNotEqualTo, isNotEqualTo, isNotEqualTo, isNotEqualTo, lessThan, lessThan, lessThan, lessThan, lessThan, lessThanOrEqualTo, lessThanOrEqualTo, lessThanOrEqualTo, lessThanOrEqualTo, lessThanOrEqualTo, numberExpression
Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods declared in interface javafx.beans.binding.NumberExpression
add, add, add, add, add, asString, asString, asString, divide, divide, divide, divide, divide, greaterThan, greaterThan, greaterThan, greaterThan, greaterThan, greaterThanOrEqualTo, greaterThanOrEqualTo, greaterThanOrEqualTo, greaterThanOrEqualTo, greaterThanOrEqualTo, isEqualTo, isEqualTo, isEqualTo, isEqualTo, isEqualTo, isEqualTo, isEqualTo, isEqualTo, isNotEqualTo, isNotEqualTo, isNotEqualTo, isNotEqualTo, isNotEqualTo, isNotEqualTo, isNotEqualTo, isNotEqualTo, lessThan, lessThan, lessThan, lessThan, lessThan, lessThanOrEqualTo, lessThanOrEqualTo, lessThanOrEqualTo, lessThanOrEqualTo, lessThanOrEqualTo, multiply, multiply, multiply, multiply, multiply, negate, subtract, subtract, subtract, subtract, subtract
Methods declared in interface javafx.beans.Observable
subscribe
Methods declared in interface javafx.beans.value.ObservableNumberValue
doubleValue, floatValue, intValue, longValue
Constructor Details
DoubleBinding
public DoubleBinding()
DoubleBinding.Method Details
addListener
public void addListener(InvalidationListener listener)
ObservableInvalidationListener 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.
- Specified by:
-
addListenerin interfaceObservable - Parameters:
-
listener- The listener to register - See Also:
removeListener
public void removeListener(InvalidationListener listener)
ObservableObservable 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.
- Specified by:
-
removeListenerin interfaceObservable - Parameters:
-
listener- The listener to remove - See Also:
addListener
public void addListener(ChangeListener<? super Number> listener)
ObservableValueChangeListener 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.
- Specified by:
-
addListenerin interfaceObservableValue<Number> - Parameters:
-
listener- The listener to register - See Also:
removeListener
public void removeListener(ChangeListener<? super Number> listener)
ObservableValueObservableValue 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.
- Specified by:
-
removeListenerin interfaceObservableValue<Number> - Parameters:
-
listener- The listener to remove - See Also:
bind
protected final void bind(Observable... dependencies)
- Parameters:
-
dependencies- the dependencies to observe
unbind
protected final void unbind(Observable... dependencies)
- Parameters:
-
dependencies- the dependencies to stop observing
dispose
public void dispose()
dispose() that is empty.- Specified by:
-
disposein interfaceBinding<Number>
getDependencies
public ObservableList<?> getDependencies()
getDependencies() that returns an empty ObservableList.- Specified by:
-
getDependenciesin interfaceBinding<Number> - Returns:
- an empty
ObservableList
get
public final double get()
computeValue(). The method computeValue() is only called if the binding is invalid. The result is cached and returned if the binding did not become invalid since the last call of get().- Specified by:
-
getin interfaceObservableDoubleValue - Returns:
- the current value
onInvalidating
protected void onInvalidating()
invalidate
public final void invalidate()
BindingBinding next time it is request.- Specified by:
-
invalidatein interfaceBinding<Number>
isValid
public final boolean isValid()
Binding- Specified by:
-
isValidin interfaceBinding<Number> - Returns:
-
trueif theBindingis valid,falseotherwise
computeValue
protected abstract double computeValue()
Classes extending DoubleBinding have to provide an implementation of computeValue.
- Returns:
- the current value
toString
public String toString()
DoubleBinding object.- Overrides:
-
toStringin classObject - Returns:
- a string representation of this
DoubleBindingobject.
© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.