Module javafx.controls
Package javafx.scene.control

# Class SpinnerValueFactory<T>

java.lang.Object
javafx.scene.control.SpinnerValueFactory<T>

Type Parameters:
  `T` - The type of the data this value factory deals with, which must coincide with the type of the Spinner that the value factory is set on.

Direct Known Subclasses:
  `SpinnerValueFactory.DoubleSpinnerValueFactory`, `SpinnerValueFactory.IntegerSpinnerValueFactory`, `SpinnerValueFactory.ListSpinnerValueFactory`

public abstract class SpinnerValueFactory<T> extends Object
The SpinnerValueFactory is the model behind the JavaFX `Spinner control` - without a value factory installed a Spinner is unusable. It is the role of the value factory to handle almost all aspects of the Spinner, including:

- Representing the current state of the `value`,
- `Incrementing` and `decrementing` the value, with one or more steps per call,
- `Converting` text input from the user (via the Spinner `editor`,
- Converting `objects to user-readable strings` for display on screen

SpinnerValueFactory classes for some common types are provided with JavaFX, including:

- `SpinnerValueFactory.IntegerSpinnerValueFactory`
- `SpinnerValueFactory.DoubleSpinnerValueFactory`
- `SpinnerValueFactory.ListSpinnerValueFactory`

Since:
  JavaFX 8u40
See Also:
  - `Spinner`
  - `SpinnerValueFactory.IntegerSpinnerValueFactory`
  - `SpinnerValueFactory.DoubleSpinnerValueFactory`
  - `SpinnerValueFactory.ListSpinnerValueFactory`

## Property Summary

Properties
Type
Property
Description
`final ObjectProperty<StringConverter<T>>`
`converter`
Converts the user-typed input (when the Spinner is `editable`) to an object of type T, such that the input may be retrieved via the `value` property.
`final ObjectProperty<T>`
`value`
Represents the current value of the SpinnerValueFactory, or null if no value has been set.
`final BooleanProperty`
`wrapAround`
The wrapAround property is used to specify whether the value factory should be circular.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`SpinnerValueFactory.DoubleSpinnerValueFactory`
A `SpinnerValueFactory` implementation designed to iterate through double values.
`static class`
`SpinnerValueFactory.IntegerSpinnerValueFactory`
A `SpinnerValueFactory` implementation designed to iterate through integer values.
`static class`
`SpinnerValueFactory.ListSpinnerValueFactory<T>`
A `SpinnerValueFactory` implementation designed to iterate through a list of values.

## Constructor Summary

Constructors
Constructor
Description
`SpinnerValueFactory()`

## Method Summary

Modifier and Type
Method
Description
`final ObjectProperty<StringConverter<T>>`
`converterProperty()`
Converts the user-typed input (when the Spinner is `editable`) to an object of type T, such that the input may be retrieved via the `value` property.
`abstract void`
`decrement(int steps)`
Attempts to decrement the `value` by the given number of steps.
`final StringConverter<T>`
`getConverter()`
Gets the value of the `converter` property.
`final T`
`getValue()`
Gets the value of the `value` property.
`abstract void`
`increment(int steps)`
Attempts to omcrement the `value` by the given number of steps.
`final boolean`
`isWrapAround()`
Gets the value of the `wrapAround` property.
`final void`
`setConverter(StringConverter<T> newValue)`
Sets the value of the `converter` property.
`final void`
`setValue(T newValue)`
Sets the value of the `value` property.
`final void`
`setWrapAround(boolean value)`
Sets the value of the `wrapAround` property.
`final ObjectProperty<T>`
`valueProperty()`
Represents the current value of the SpinnerValueFactory, or null if no value has been set.
`final BooleanProperty`
`wrapAroundProperty()`
The wrapAround property is used to specify whether the value factory should be circular.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Property Details

### value

public final ObjectProperty<T> valueProperty
Represents the current value of the SpinnerValueFactory, or null if no value has been set.

See Also:
  - `getValue()`
  - `setValue(T)`
  - `valueProperty()`

### converter

public final ObjectProperty<StringConverter<T>> converterProperty
Converts the user-typed input (when the Spinner is `editable`) to an object of type T, such that the input may be retrieved via the `value` property.

See Also:
  - `getConverter()`
  - `setConverter(StringConverter)`
  - `converterProperty()`

### wrapAround

public final BooleanProperty wrapAroundProperty
The wrapAround property is used to specify whether the value factory should be circular. For example, should an integer-based value model increment from the maximum value back to the minimum value (and vice versa).

See Also:
  - `isWrapAround()`
  - `setWrapAround(boolean)`
  - `wrapAroundProperty()`

## Constructor Details

### SpinnerValueFactory

public SpinnerValueFactory()

## Method Details

### decrement

public abstract void decrement(int steps)
Attempts to decrement the `value` by the given number of steps.

Parameters:
  `steps` - The number of decrements that should be performed on the value.

### increment

public abstract void increment(int steps)
Attempts to omcrement the `value` by the given number of steps.

Parameters:
  `steps` - The number of increments that should be performed on the value.

### getValue

public final T getValue()
Gets the value of the `value` property.

Property description:
  Represents the current value of the SpinnerValueFactory, or null if no value has been set.
Returns:
  the value of the `value` property
See Also:
  - `setValue(T)`
  - `valueProperty()`

### setValue

public final void setValue(T newValue)
Sets the value of the `value` property.

Property description:
  Represents the current value of the SpinnerValueFactory, or null if no value has been set.
Parameters:
  `newValue` - the value for the `value` property
See Also:
  - `getValue()`
  - `valueProperty()`

### valueProperty

public final ObjectProperty<T> valueProperty()
Represents the current value of the SpinnerValueFactory, or null if no value has been set.

Returns:
  the `value` property
See Also:
  - `getValue()`
  - `setValue(T)`

### getConverter

public final StringConverter<T> getConverter()
Gets the value of the `converter` property.

Property description:
  Converts the user-typed input (when the Spinner is `editable`) to an object of type T, such that the input may be retrieved via the `value` property.
Returns:
  the value of the `converter` property
See Also:
  - `setConverter(StringConverter)`
  - `converterProperty()`

### setConverter

public final void setConverter(StringConverter<T> newValue)
Sets the value of the `converter` property.

Property description:
  Converts the user-typed input (when the Spinner is `editable`) to an object of type T, such that the input may be retrieved via the `value` property.
Parameters:
  `newValue` - the value for the `converter` property
See Also:
  - `getConverter()`
  - `converterProperty()`

### converterProperty

public final ObjectProperty<StringConverter<T>> converterProperty()
Converts the user-typed input (when the Spinner is `editable`) to an object of type T, such that the input may be retrieved via the `value` property.

Returns:
  the `converter` property
See Also:
  - `getConverter()`
  - `setConverter(StringConverter)`

### setWrapAround

public final void setWrapAround(boolean value)
Sets the value of the `wrapAround` property.

Property description:
  The wrapAround property is used to specify whether the value factory should be circular. For example, should an integer-based value model increment from the maximum value back to the minimum value (and vice versa).
Parameters:
  `value` - the value for the `wrapAround` property
See Also:
  - `isWrapAround()`
  - `wrapAroundProperty()`

### isWrapAround

public final boolean isWrapAround()
Gets the value of the `wrapAround` property.

Property description:
  The wrapAround property is used to specify whether the value factory should be circular. For example, should an integer-based value model increment from the maximum value back to the minimum value (and vice versa).
Returns:
  the value of the `wrapAround` property
See Also:
  - `setWrapAround(boolean)`
  - `wrapAroundProperty()`

### wrapAroundProperty

public final BooleanProperty wrapAroundProperty()
The wrapAround property is used to specify whether the value factory should be circular. For example, should an integer-based value model increment from the maximum value back to the minimum value (and vice versa).

Returns:
  the `wrapAround` property
See Also:
  - `isWrapAround()`
  - `setWrapAround(boolean)`