Module javafx.base

Class DoubleProperty

All Implemented Interfaces:
NumberExpression, Observable, Property<Number>, ReadOnlyProperty<Number>, ObservableDoubleValue, ObservableNumberValue, ObservableValue<Number>, WritableDoubleValue, WritableNumberValue, WritableValue<Number>
Direct Known Subclasses:
DoublePropertyBase, JavaBeanDoubleProperty

public abstract class DoubleProperty
extends ReadOnlyDoubleProperty
implements Property<Number>, WritableDoubleValue
This class defines a Property wrapping a double value.

The value of a DoubleProperty can be get and set with ObservableDoubleValue.get(), ObservableValue.getValue(), WritableDoubleValue.set(double), and WritableDoubleValue.setValue(Number).

A property can be bound and unbound unidirectional with Property.bind(ObservableValue) and Property.unbind(). Bidirectional bindings can be created and removed with Property.bindBidirectional(Property) and Property.unbindBidirectional(Property).

The context of a DoubleProperty can be read with ReadOnlyProperty.getBean() and ReadOnlyProperty.getName().

Note: setting or binding this property to a null value will set the property to "0.0". See WritableDoubleValue.setValue(java.lang.Number).

Since:
JavaFX 2.0
See Also:
ObservableDoubleValue, WritableDoubleValue, ReadOnlyDoubleProperty, Property
  • Constructor Details

    • DoubleProperty

      public DoubleProperty()
      Creates a default DoubleProperty.
  • Method Details

    • toString

      public String toString()
      Returns a string representation of this DoubleProperty object.
      Overrides:
      toString in class ReadOnlyDoubleProperty
      Returns:
      a string representation of this DoubleProperty object.
    • doubleProperty

      public static DoubleProperty doubleProperty​(Property<Double> property)
      Returns a DoubleProperty that wraps a Property and is bidirectionally bound to it. Changing this property will result in a change of the original property.

      This is very useful when bidirectionally binding an ObjectProperty<Double> and a DoubleProperty.

         DoubleProperty doubleProperty = new SimpleDoubleProperty(1.0);
         ObjectProperty<Double> objectProperty = new SimpleObjectProperty<>(2.0);
      
         // Need to keep the reference as bidirectional binding uses weak references
         DoubleProperty objectAsDouble = DoubleProperty.doubleProperty(objectProperty);
      
         doubleProperty.bindBidirectional(objectAsDouble);
      
       
      Another approach is to convert the DoubleProperty to ObjectProperty using asObject() method.

      Note: null values in the source property will be interpreted as 0.0

      Parameters:
      property - The source Property
      Returns:
      A DoubleProperty that wraps the Property
      Throws:
      NullPointerException - if property is null
      Since:
      JavaFX 8.0
      See Also:
      asObject()
    • asObject

      public ObjectProperty<Double> asObject()
      Creates an ObjectProperty that bidirectionally bound to this DoubleProperty. If the value of this DoubleProperty changes, the value of the ObjectProperty will be updated automatically and vice-versa.

      Can be used for binding an ObjectProperty to DoubleProperty.

         DoubleProperty doubleProperty = new SimpleDoubleProperty(1.0);
         ObjectProperty<Double> objectProperty = new SimpleObjectProperty<>(2.0);
      
         objectProperty.bind(doubleProperty.asObject());
       
      Overrides:
      asObject in class ReadOnlyDoubleProperty
      Returns:
      the new ObjectProperty
      Since:
      JavaFX 8.0