javax.swing.colorchooser

## Class AbstractColorChooserPanel

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - javax.swing.JComponent
      - - javax.swing.JPanel
        - - javax.swing.colorchooser.AbstractColorChooserPanel

- All Implemented Interfaces:
    ImageObserver, MenuContainer, Serializable, Accessible

      public abstract class AbstractColorChooserPanel
      extends JPanel

  This is the abstract superclass for color choosers. If you want to add a new color chooser panel into a `JColorChooser`, subclass this class.

  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`.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class javax.swing.JPanel

      `JPanel.AccessibleJPanel`

    - ### Nested classes/interfaces inherited from class javax.swing.JComponent

      `JComponent.AccessibleJComponent`

    - ### Nested classes/interfaces inherited from class java.awt.Container

      `Container.AccessibleAWTContainer`

    - ### Nested classes/interfaces inherited from class java.awt.Component

      `Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy`

  - ### Field Summary

    - ### Fields inherited from class javax.swing.JComponent

      `listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW`

    - ### Fields inherited from class java.awt.Component

      `accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

    - ### Fields inherited from interface java.awt.image.ImageObserver

      `ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

  - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected abstract void` | `buildChooser()` | Builds a new chooser panel.
    `protected Color` | `getColorFromModel()` | Returns the color that is currently selected.
    `ColorSelectionModel` | `getColorSelectionModel()` | Returns the model that the chooser panel is editing.
    `int` | `getDisplayedMnemonicIndex()` | Provides a hint to the look and feel as to the index of the character in `getDisplayName` that should be visually identified as the mnemonic.
    `abstract String` | `getDisplayName()` | Returns a string containing the display name of the panel.
    `abstract Icon` | `getLargeDisplayIcon()` | Returns the large display icon for the panel.
    `int` | `getMnemonic()` | Provides a hint to the look and feel as to the `KeyEvent.VK` constant that can be used as a mnemonic to access the panel.
    `abstract Icon` | `getSmallDisplayIcon()` | Returns the small display icon for the panel.
    `void` | `installChooserPanel(JColorChooser enclosingChooser)` | Invoked when the panel is added to the chooser.
    `void` | `paint(Graphics g)` | Draws the panel.
    `void` | `uninstallChooserPanel(JColorChooser enclosingChooser)` | Invoked when the panel is removed from the chooser.
    `abstract void` | `updateChooser()` | Invoked automatically when the model's state changes.

    - ### Methods inherited from class javax.swing.JPanel

      `getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI`

    - ### Methods inherited from class javax.swing.JComponent

      `addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update`

    - ### Methods inherited from class java.awt.Container

      `add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree`

    - ### Methods inherited from class java.awt.Component

      `action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

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

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

- - ### Constructor Detail

    - #### AbstractColorChooserPanel

          public AbstractColorChooserPanel()

  - ### Method Detail

    - #### updateChooser

          public abstract void updateChooser()

      Invoked automatically when the model's state changes. It is also called by `installChooserPanel` to allow you to set up the initial state of your chooser. Override this method to update your `ChooserPanel`.

    - #### buildChooser

          protected abstract void buildChooser()

      Builds a new chooser panel.

    - #### getDisplayName

          public abstract String getDisplayName()

      Returns a string containing the display name of the panel.
      Returns:
        the name of the display panel

    - #### getMnemonic

          public int getMnemonic()

      Provides a hint to the look and feel as to the `KeyEvent.VK` constant that can be used as a mnemonic to access the panel. A return value <= 0 indicates there is no mnemonic.

      The return value here is a hint, it is ultimately up to the look and feel to honor the return value in some meaningful way.

      This implementation returns 0, indicating the `AbstractColorChooserPanel` does not support a mnemonic, subclasses wishing a mnemonic will need to override this.

      Returns:
        KeyEvent.VK constant identifying the mnemonic; <= 0 for no mnemonic
      Since:
        1.4
      See Also:
        `getDisplayedMnemonicIndex()`

    - #### getDisplayedMnemonicIndex

          public int getDisplayedMnemonicIndex()

      Provides a hint to the look and feel as to the index of the character in `getDisplayName` that should be visually identified as the mnemonic. The look and feel should only use this if `getMnemonic` returns a value > 0.

      The return value here is a hint, it is ultimately up to the look and feel to honor the return value in some meaningful way. For example, a look and feel may wish to render each `AbstractColorChooserPanel` in a `JTabbedPane`, and further use this return value to underline a character in the `getDisplayName`.

      This implementation returns -1, indicating the `AbstractColorChooserPanel` does not support a mnemonic, subclasses wishing a mnemonic will need to override this.

      Returns:
        Character index to render mnemonic for; -1 to provide no visual identifier for this panel.
      Since:
        1.4
      See Also:
        `getMnemonic()`

    - #### getSmallDisplayIcon

          public abstract Icon getSmallDisplayIcon()

      Returns the small display icon for the panel.
      Returns:
        the small display icon

    - #### getLargeDisplayIcon

          public abstract Icon getLargeDisplayIcon()

      Returns the large display icon for the panel.
      Returns:
        the large display icon

    - #### installChooserPanel

          public void installChooserPanel(JColorChooser enclosingChooser)

      Invoked when the panel is added to the chooser. If you override this, be sure to call `super`.
      Parameters:
        `enclosingChooser` - the panel to be added
      Throws:
        `RuntimeException` - if the chooser panel has already been installed

    - #### uninstallChooserPanel

          public void uninstallChooserPanel(JColorChooser enclosingChooser)

      Invoked when the panel is removed from the chooser. If override this, be sure to call `super`.

    - #### getColorSelectionModel

          public ColorSelectionModel getColorSelectionModel()

      Returns the model that the chooser panel is editing.
      Returns:
        the `ColorSelectionModel` model this panel is editing

    - #### getColorFromModel

          protected Color getColorFromModel()

      Returns the color that is currently selected.
      Returns:
        the `Color` that is selected

    - #### paint

          public void paint(Graphics g)

      Draws the panel.
      Overrides:
        `paint` in class `JComponent`
      Parameters:
        `g` - the `Graphics` object
      See Also:
        `JComponent.paintComponent(java.awt.Graphics)`, `JComponent.paintBorder(java.awt.Graphics)`, `JComponent.paintChildren(java.awt.Graphics)`, `JComponent.getComponentGraphics(java.awt.Graphics)`, `JComponent.repaint(long, int, int, int, int)`

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.