DefaultSingleSelectionModel (Java Platform SE 8 )
Keywords: javax.swing.DefaultSingleSelectionModel class
Date: 2026-04-17

javax.swing

## Class DefaultSingleSelectionModel

- java.lang.Object
- - javax.swing.DefaultSingleSelectionModel

- All Implemented Interfaces:
    Serializable, SingleSelectionModel

      public class DefaultSingleSelectionModel
      extends Object
      implements SingleSelectionModel, Serializable

  A generic implementation of SingleSelectionModel.

  Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeans™ has been added to the `java.beans` package. Please see `XMLEncoder`.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected ChangeEvent` | `changeEvent`
    `protected EventListenerList` | `listenerList` The collection of registered listeners

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DefaultSingleSelectionModel()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addChangeListener(ChangeListener l)` Adds a `ChangeListener` to the button.
    `void` | `clearSelection()` Clears the selection (to -1).
    `protected void` | `fireStateChanged()` Notifies all listeners that have registered interest for notification on this event type.
    `ChangeListener[]` | `getChangeListeners()` Returns an array of all the change listeners registered on this `DefaultSingleSelectionModel`.
    `<T extends EventListener> T[]` | `getListeners(Class<T> listenerType)` Returns an array of all the objects currently registered as `FooListener`s upon this model.
    `int` | `getSelectedIndex()` Returns the model's selection.
    `boolean` | `isSelected()` Returns true if the selection model currently has a selected value.
    `void` | `removeChangeListener(ChangeListener l)` Removes a `ChangeListener` from the button.
    `void` | `setSelectedIndex(int index)` Sets the model's selected index to index.

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

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

- - ### Field Detail

    - #### changeEvent

          protected transient ChangeEvent changeEvent

    - #### listenerList

          protected EventListenerList listenerList

      The collection of registered listeners

  - ### Constructor Detail

    - #### DefaultSingleSelectionModel

          public DefaultSingleSelectionModel()

  - ### Method Detail

    - #### getSelectedIndex

          public int getSelectedIndex()

      Description copied from interface: `SingleSelectionModel`
      Returns the model's selection.
      Specified by:
        `getSelectedIndex` in interface `SingleSelectionModel`
      Returns:
        the model's selection, or -1 if there is no selection
      See Also:
        `SingleSelectionModel.setSelectedIndex(int)`

    - #### setSelectedIndex

          public void setSelectedIndex(int index)

      Description copied from interface: `SingleSelectionModel`
      Sets the model's selected index to index. Notifies any listeners if the model changes
      Specified by:
        `setSelectedIndex` in interface `SingleSelectionModel`
      Parameters:
        `index` - an int specifying the model selection
      See Also:
        `SingleSelectionModel.getSelectedIndex()`, `SingleSelectionModel.addChangeListener(javax.swing.event.ChangeListener)`

    - #### clearSelection

          public void clearSelection()

      Description copied from interface: `SingleSelectionModel`
      Clears the selection (to -1).
      Specified by:
        `clearSelection` in interface `SingleSelectionModel`

    - #### isSelected

          public boolean isSelected()

      Description copied from interface: `SingleSelectionModel`
      Returns true if the selection model currently has a selected value.
      Specified by:
        `isSelected` in interface `SingleSelectionModel`
      Returns:
        true if a value is currently selected

    - #### addChangeListener

          public void addChangeListener(ChangeListener l)

      Adds a `ChangeListener` to the button.
      Specified by:
        `addChangeListener` in interface `SingleSelectionModel`
      Parameters:
        `l` - the ChangeListener to add

    - #### removeChangeListener

          public void removeChangeListener(ChangeListener l)

      Removes a `ChangeListener` from the button.
      Specified by:
        `removeChangeListener` in interface `SingleSelectionModel`
      Parameters:
        `l` - the ChangeListener to remove

    - #### getChangeListeners

          public ChangeListener[] getChangeListeners()

      Returns an array of all the change listeners registered on this `DefaultSingleSelectionModel`.
      Returns:
        all of this model's `ChangeListener`s or an empty array if no change listeners are currently registered
      Since:
        1.4
      See Also:
        `addChangeListener(javax.swing.event.ChangeListener)`, `removeChangeListener(javax.swing.event.ChangeListener)`

    - #### fireStateChanged

          protected void fireStateChanged()

      Notifies all listeners that have registered interest for notification on this event type. The event instance is created lazily.
      See Also:
        `EventListenerList`

    - #### getListeners

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

      Returns an array of all the objects currently registered as `FooListener`s upon this model. `FooListener`s are registered using the `addFooListener` method.

      You can specify the `listenerType` argument with a class literal, such as `FooListener.class`. For example, you can query a `DefaultSingleSelectionModel` instance `m` for its change listeners with the following code:

          ChangeListener[] cls = (ChangeListener[])(m.getListeners(ChangeListener.class));

      If no such listeners exist, this method returns an empty array.
      Parameters:
        `listenerType` - the type of listeners requested; this parameter should specify an interface that descends from `java.util.EventListener`
      Returns:
        an array of all objects registered as `FooListener`s on this model, or an empty array if no such listeners have been added
      Throws:
        `ClassCastException` - if `listenerType` doesn't specify a class or interface that implements `java.util.EventListener`
      Since:
        1.3
      See Also:
        `getChangeListeners()`

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.