Module javafx.base
Package javafx.beans.property

# Class IntegerProperty

java.lang.Object
javafx.beans.binding.NumberExpressionBase
javafx.beans.binding.IntegerExpression
javafx.beans.property.ReadOnlyIntegerProperty
javafx.beans.property.IntegerProperty

All Implemented Interfaces:
  `NumberExpression`, `Observable`, `Property<Number>`, `ReadOnlyProperty<Number>`, `ObservableIntegerValue`, `ObservableNumberValue`, `ObservableValue<Number>`, `WritableIntegerValue`, `WritableNumberValue`, `WritableValue<Number>`

Direct Known Subclasses:
  `IntegerPropertyBase`, `JavaBeanIntegerProperty`

    public abstract class IntegerProperty
    extends ReadOnlyIntegerProperty
    implements Property<Number>, WritableIntegerValue

This class defines a `Property` wrapping an `int` value.

The value of an `IntegerProperty` can be get and set with `ObservableIntegerValue.get()`, `ObservableValue.getValue()`, `WritableIntegerValue.set(int)`, and `WritableIntegerValue.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 `IntegerProperty` 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 `WritableIntegerValue.setValue(java.lang.Number)`.

Since:
  JavaFX 2.0
See Also:
  `ObservableIntegerValue`, `WritableIntegerValue`, `ReadOnlyIntegerProperty`, `Property`

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `IntegerProperty()` | Creates a default `IntegerProperty`.

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `ObjectProperty<Integer>` | `asObject()` | Creates an `ObjectProperty` that bidirectionally bound to this `IntegerProperty`.
  `static IntegerProperty` | `integerProperty​(Property<Integer> property)` | Returns a `IntegerProperty` that wraps a `Property` and is bidirectionally bound to it.
  `String` | `toString()` | Returns a string representation of this `IntegerProperty` object.

  ### Methods declared in class javafx.beans.property.ReadOnlyIntegerProperty

  `readOnlyIntegerProperty`

  ### Methods declared in class javafx.beans.binding.IntegerExpression

  `add, add, add, add, divide, divide, divide, divide, integerExpression, integerExpression, multiply, multiply, multiply, multiply, negate, subtract, subtract, subtract, subtract`

  ### Methods declared in class javafx.beans.binding.NumberExpressionBase

  `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, asString, asString, asString, 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, subtract`

  ### Methods declared in interface javafx.beans.Observable

  `addListener, removeListener`

  ### Methods declared in interface javafx.beans.value.ObservableIntegerValue

  `get`

  ### Methods declared in interface javafx.beans.value.ObservableNumberValue

  `doubleValue, floatValue, intValue, longValue`

  ### Methods declared in interface javafx.beans.value.ObservableValue

  `addListener, getValue, removeListener`

  ### Methods declared in interface javafx.beans.property.Property

  `bind, bindBidirectional, isBound, unbind, unbindBidirectional`

  ### Methods declared in interface javafx.beans.property.ReadOnlyProperty

  `getBean, getName`

  ### Methods declared in interface javafx.beans.value.WritableIntegerValue

  `get, set, setValue`

  ### Methods declared in interface javafx.beans.value.WritableValue

  `getValue`

- ## Constructor Details

  - ### IntegerProperty

    public IntegerProperty()
    Creates a default `IntegerProperty`.

- ## Method Details

  - ### toString

    public String toString()
    Returns a string representation of this `IntegerProperty` object.
    Overrides:
      `toString` in class `ReadOnlyIntegerProperty`
    Returns:
      a string representation of this `IntegerProperty` object.

  - ### integerProperty

    public static IntegerProperty integerProperty​(Property<Integer> property)
    Returns a `IntegerProperty` 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<Integer> and a IntegerProperty.

    >        IntegerProperty integerProperty = new SimpleIntegerProperty(1);
    >        ObjectProperty<Integer> objectProperty = new SimpleObjectProperty<>(2);

    >        // Need to keep the reference as bidirectional binding uses weak references
    >        IntegerProperty objectAsInteger = IntegerProperty.integerProperty(objectProperty);

    >        integerProperty.bindBidirectional(objectAsInteger);

    Another approach is to convert the IntegerProperty to ObjectProperty using `asObject()` method.

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

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

  - ### asObject

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

    Can be used for binding an ObjectProperty to IntegerProperty.

    >        IntegerProperty integerProperty = new SimpleIntegerProperty(1);
    >        ObjectProperty<Integer> objectProperty = new SimpleObjectProperty<>(2);

    >        objectProperty.bind(integerProperty.asObject());

    Overrides:
      `asObject` in class `ReadOnlyIntegerProperty`
    Returns:
      the new `ObjectProperty`
    Since:
      JavaFX 8.0