# Class DefaultColorSelectionModel

java.lang.Object
javax.swing.colorchooser.DefaultColorSelectionModel

All Implemented Interfaces:
  `Serializable`, `ColorSelectionModel`

public class DefaultColorSelectionModel extends Object implements ColorSelectionModel, Serializable
A generic implementation of `ColorSelectionModel`.

See Also:
  - `Color`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected ChangeEvent`
  `changeEvent`
  Only one `ChangeEvent` is needed per model instance since the event's only (read-only) state is the source property.
  `protected EventListenerList`
  `listenerList`
  The listener list.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DefaultColorSelectionModel()`
  Creates a `DefaultColorSelectionModel` with the current color set to `Color.white`.
  `DefaultColorSelectionModel(Color color)`
  Creates a `DefaultColorSelectionModel` with the current color set to `color`, which should be non-`null`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addChangeListener(ChangeListener l)`
  Adds a `ChangeListener` to the model.
  `protected void`
  `fireStateChanged()`
  Runs each `ChangeListener`'s `stateChanged` method.
  `ChangeListener[]`
  `getChangeListeners()`
  Returns an array of all the `ChangeListener`s added to this `DefaultColorSelectionModel` with `addChangeListener`.
  `Color`
  `getSelectedColor()`
  Returns the selected `Color` which should be non-`null`.
  `void`
  `removeChangeListener(ChangeListener l)`
  Removes a `ChangeListener` from the model.
  `void`
  `setSelectedColor(Color color)`
  Sets the selected color to `color`.

  ### Methods declared in class java.lang.Object

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

- ## Field Details

  - ### changeEvent

    protected transient ChangeEvent changeEvent
    Only one `ChangeEvent` is needed per model instance since the event's only (read-only) state is the source property. The source of events generated here is always "this".

  - ### listenerList

    protected EventListenerList listenerList
    The listener list.

- ## Constructor Details

  - ### DefaultColorSelectionModel

    public DefaultColorSelectionModel()
    Creates a `DefaultColorSelectionModel` with the current color set to `Color.white`. This is the default constructor.

  - ### DefaultColorSelectionModel

    public DefaultColorSelectionModel(Color color)
    Creates a `DefaultColorSelectionModel` with the current color set to `color`, which should be non-`null`. Note that setting the color to `null` is undefined and may have unpredictable results.
    Parameters:
      `color` - the new `Color`

- ## Method Details

  - ### getSelectedColor

    public Color getSelectedColor()
    Returns the selected `Color` which should be non-`null`.
    Specified by:
      `getSelectedColor` in interface `ColorSelectionModel`
    Returns:
      the selected `Color`
    See Also:
      - `ColorSelectionModel.setSelectedColor(java.awt.Color)`

  - ### setSelectedColor

    public void setSelectedColor(Color color)
    Sets the selected color to `color`. Note that setting the color to `null` is undefined and may have unpredictable results. This method fires a state changed event if it sets the current color to a new non-`null` color; if the new color is the same as the current color, no event is fired.
    Specified by:
      `setSelectedColor` in interface `ColorSelectionModel`
    Parameters:
      `color` - the new `Color`
    See Also:
      - `ColorSelectionModel.getSelectedColor()`
      - `ColorSelectionModel.addChangeListener(javax.swing.event.ChangeListener)`

  - ### addChangeListener

    public void addChangeListener(ChangeListener l)
    Adds a `ChangeListener` to the model.
    Specified by:
      `addChangeListener` in interface `ColorSelectionModel`
    Parameters:
      `l` - the `ChangeListener` to be added

  - ### removeChangeListener

    public void removeChangeListener(ChangeListener l)
    Removes a `ChangeListener` from the model.
    Specified by:
      `removeChangeListener` in interface `ColorSelectionModel`
    Parameters:
      `l` - the `ChangeListener` to be removed

  - ### getChangeListeners

    public ChangeListener[] getChangeListeners()
    Returns an array of all the `ChangeListener`s added to this `DefaultColorSelectionModel` 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()
    Runs each `ChangeListener`'s `stateChanged` method.
    See Also:
      - `EventListenerList`