SpinnerModel (Java SE 14 & JDK 14)
Description: declaration: module: java.desktop, package: javax.swing, interface: SpinnerModel
Keywords: javax.swing.SpinnerModel interface

Module java.desktop
Package javax.swing

# Interface SpinnerModel

All Known Implementing Classes:
  `AbstractSpinnerModel`, `SpinnerDateModel`, `SpinnerListModel`, `SpinnerNumberModel`

    public interface SpinnerModel

A model for a potentially unbounded sequence of object values. This model is similar to `ListModel` however there are some important differences:

- The number of sequence elements isn't necessarily bounded.
- The model doesn't support indexed random access to sequence elements. Only three sequence values are accessible at a time: current, next and previous.
- The current sequence element, can be set.

A `SpinnerModel` has three properties, only the first is read/write.

`value`
  The current element of the sequence.
`nextValue`
  The following element or null if `value` is the last element of the sequence.
`previousValue`
  The preceding element or null if `value` is the first element of the sequence.

When the `value` property changes, `ChangeListeners` are notified. `SpinnerModel` may choose to notify the `ChangeListeners` under other circumstances.

Since:
  1.4
See Also:
  `JSpinner`, `AbstractSpinnerModel`, `SpinnerListModel`, `SpinnerNumberModel`, `SpinnerDateModel`

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `void` | `addChangeListener​(ChangeListener l)` | Adds a `ChangeListener` to the model's listener list.
  `Object` | `getNextValue()` | Return the object in the sequence that comes after the object returned by `getValue()`.
  `Object` | `getPreviousValue()` | Return the object in the sequence that comes before the object returned by `getValue()`.
  `Object` | `getValue()` | The current element of the sequence.
  `void` | `removeChangeListener​(ChangeListener l)` | Removes a `ChangeListener` from the model's listener list.
  `void` | `setValue​(Object value)` | Changes current value of the model, typically this value is displayed by the `editor` part of a `JSpinner`.

- ## Method Details

  - ### getValue

    Object getValue()
    The current element of the sequence. This element is usually displayed by the `editor` part of a `JSpinner`.
    Returns:
      the current spinner value.
    See Also:
      `setValue(java.lang.Object)`

  - ### setValue

    void setValue​(Object value)
    Changes current value of the model, typically this value is displayed by the `editor` part of a `JSpinner`. If the `SpinnerModel` implementation doesn't support the specified value then an `IllegalArgumentException` is thrown. For example a `SpinnerModel` for numbers might only support values that are integer multiples of ten. In that case, `model.setValue(new Number(11))` would throw an exception.
    Parameters:
      `value` - new value for the spinner
    Throws:
      `IllegalArgumentException` - if `value` isn't allowed
    See Also:
      `getValue()`

  - ### getNextValue

    Object getNextValue()
    Return the object in the sequence that comes after the object returned by `getValue()`. If the end of the sequence has been reached then return null. Calling this method does not effect `value`.
    Returns:
      the next legal value or null if one doesn't exist
    See Also:
      `getValue()`, `getPreviousValue()`

  - ### getPreviousValue

    Object getPreviousValue()
    Return the object in the sequence that comes before the object returned by `getValue()`. If the end of the sequence has been reached then return null. Calling this method does not effect `value`.
    Returns:
      the previous legal value or null if one doesn't exist
    See Also:
      `getValue()`, `getNextValue()`

  - ### addChangeListener

    void addChangeListener​(ChangeListener l)
    Adds a `ChangeListener` to the model's listener list. The `ChangeListeners` must be notified when models `value` changes.
    Parameters:
      `l` - the ChangeListener to add
    See Also:
      `removeChangeListener(javax.swing.event.ChangeListener)`

  - ### removeChangeListener

    void removeChangeListener​(ChangeListener l)
    Removes a `ChangeListener` from the model's listener list.
    Parameters:
      `l` - the ChangeListener to remove
    See Also:
      `addChangeListener(javax.swing.event.ChangeListener)`