javax.swing

## Class AbstractSpinnerModel

- java.lang.Object
- - javax.swing.AbstractSpinnerModel

- All Implemented Interfaces:
    Serializable, SpinnerModel
  Direct Known Subclasses:
    SpinnerDateModel, SpinnerListModel, SpinnerNumberModel

      public abstract class AbstractSpinnerModel
      extends Object
      implements SpinnerModel, Serializable

  This class provides the ChangeListener part of the SpinnerModel interface that should be suitable for most concrete SpinnerModel implementations. Subclasses must provide an implementation of the `setValue`, `getValue`, `getNextValue` and `getPreviousValue` methods.
  Since:
    1.4
  See Also:
    `JSpinner`, `SpinnerModel`, `SpinnerListModel`, `SpinnerNumberModel`, `SpinnerDateModel`

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected EventListenerList` | `listenerList` | The list of ChangeListeners for this model.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AbstractSpinnerModel()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addChangeListener(ChangeListener l)` | Adds a ChangeListener to the model's listener list.
    `protected void` | `fireStateChanged()` | Run each ChangeListeners stateChanged() method.
    `ChangeListener[]` | `getChangeListeners()` | Returns an array of all the `ChangeListener`s added to this AbstractSpinnerModel with addChangeListener().
    `<T extends EventListener> T[]` | `getListeners(Class<T> listenerType)` | Return an array of all the listeners of the given type that were added to this model.
    `void` | `removeChangeListener(ChangeListener l)` | Removes a ChangeListener from the model's listener list.

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

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

    - ### Methods inherited from interface javax.swing.SpinnerModel

      `getNextValue, getPreviousValue, getValue, setValue`

- - ### Field Detail

    - #### listenerList

          protected EventListenerList listenerList

      The list of ChangeListeners for this model. Subclasses may store their own listeners here.

  - ### Constructor Detail

    - #### AbstractSpinnerModel

          public AbstractSpinnerModel()

  - ### Method Detail

    - #### addChangeListener

          public void addChangeListener(ChangeListener l)

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

    - #### removeChangeListener

          public void removeChangeListener(ChangeListener l)

      Removes a ChangeListener from the model's listener list.
      Specified by:
        `removeChangeListener` in interface `SpinnerModel`
      Parameters:
        `l` - the ChangeListener to remove
      See Also:
        `addChangeListener(javax.swing.event.ChangeListener)`, `SpinnerModel.removeChangeListener(javax.swing.event.ChangeListener)`

    - #### getChangeListeners

          public ChangeListener[] getChangeListeners()

      Returns an array of all the `ChangeListener`s added to this AbstractSpinnerModel with addChangeListener().
      Returns:
        all of the `ChangeListener`s added or an empty array if no listeners have been added
      Since:
        1.4

    - #### fireStateChanged

          protected void fireStateChanged()

      Run each ChangeListeners stateChanged() method.
      See Also:
        `SpinnerModel.setValue(java.lang.Object)`, `EventListenerList`

    - #### getListeners

          public <T extends EventListener> T[] getListeners(Class<T> listenerType)

      Return an array of all the listeners of the given type that were added to this model. For example to find all of the ChangeListeners added to this model:

           myAbstractSpinnerModel.getListeners(ChangeListener.class);

      Parameters:
        `listenerType` - the type of listeners to return, e.g. ChangeListener.class
      Returns:
        all of the objects receiving listenerType notifications from this model

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.