Class ColorPanel
- All Implemented Interfaces:
ItemListener,ImageObserver,MenuContainer,Serializable,EventListener,Accessible,ChangeListener
ColorDialog to present color-selection controls.
This panel embeds a simplified JColorChooser, retaining its standard
swatch and RGB chooser panels, along with an MDI-specific preview area that
shows:
- an optional "No Color" checkbox,
- the newly selected color, and
- the original color.
In this refactored version, transparency is controlled only through the chooser's built-in alpha support. The legacy custom transparency slider has been removed.
- Author:
- heddle
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanelNested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponentNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected JColorChooserThe embedded Swing color chooser.protected static intThe minimum height of the panel.protected static intThe minimum width of the panel.protected JLabelLabel used to preview the currently selected color.protected JCheckBoxCheckbox used to select "No Color" when that option is enabled.protected JLabelLabel used to preview the original color.protected JPanelThe custom preview panel shown beneath the chooser.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_WINDOWFields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected JPanelCreates the preview panel shown at the bottom of the chooser.voidenableNoColor(boolean anc) Enables or disables the user's ability to choose "No Color".voidenableTransparency(boolean anc) Enables or disables transparency selection.getColor()Gets the currently selected color.Returns slightly expanded outer insets for the panel.Returns the minimum size of the panel.Returns the preferred size of the panel.booleanChecks whether "No Color" is currently selected.voidResponds to changes in the "No Color" checkbox.booleannoColor()Checks whether "No Color" is selected.voidSets the current color and updates the preview.voidsetNoColor(boolean nocol) Sets whether "No Color" is selected.voidResponds to chooser color changes.Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUIMethods 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, getListeners, getLocation, getMaximumSize, getNextFocusableComponent, getPopupLocation, 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, paint, 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, updateMethods 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, validateTreeMethods 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, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Field Details
-
minw
protected static int minwThe minimum width of the panel. -
minh
protected static int minhThe minimum height of the panel. -
nocolorcb
Checkbox used to select "No Color" when that option is enabled. -
oldcolorlabel
Label used to preview the original color. -
newcolorlabel
Label used to preview the currently selected color. -
previewPanel
The custom preview panel shown beneath the chooser. -
colorChooser
The embedded Swing color chooser.
-
-
Constructor Details
-
ColorPanel
public ColorPanel()Creates a new color panel.The chooser is simplified to the standard swatch and RGB panels. Swatches provide convenient one-click access to common colors, while RGB provides precise component and alpha entry. The preview area is custom and includes the old/new color samples and the optional "No Color" control.
-
-
Method Details
-
createPreviewPanel
Creates the preview panel shown at the bottom of the chooser.The layout is intentionally close to the original MDI appearance, except that the legacy transparency slider is omitted.
- Returns:
- the preview panel
-
getMinimumSize
Returns the minimum size of the panel.- Overrides:
getMinimumSizein classJComponent- Returns:
- the minimum size
-
getPreferredSize
Returns the preferred size of the panel.- Overrides:
getPreferredSizein classJComponent- Returns:
- the preferred size
-
getInsets
Returns slightly expanded outer insets for the panel.- Overrides:
getInsetsin classJComponent- Returns:
- the panel insets
-
itemStateChanged
Responds to changes in the "No Color" checkbox.- Specified by:
itemStateChangedin interfaceItemListener- Parameters:
e- the item event
-
setNoColor
public void setNoColor(boolean nocol) Sets whether "No Color" is selected.- Parameters:
nocol-trueto select "No Color"
-
noColor
public boolean noColor()Checks whether "No Color" is selected.- Returns:
trueif "No Color" is selected
-
enableNoColor
public void enableNoColor(boolean anc) Enables or disables the user's ability to choose "No Color".- Parameters:
anc-trueto enable the "No Color" option
-
enableTransparency
public void enableTransparency(boolean anc) Enables or disables transparency selection.Since the custom transparency slider has been removed, this method now controls transparency by normalizing the chooser's color to fully opaque when transparency is not allowed.
- Parameters:
anc-trueif transparency selection is allowed
-
setColor
Sets the current color and updates the preview.- Parameters:
c- the color to set; may benull
-
stateChanged
Responds to chooser color changes.Any explicit chooser action clears "No Color" and updates the new-color preview.
- Specified by:
stateChangedin interfaceChangeListener- Parameters:
e- the change event
-
isNoColorSelected
public boolean isNoColorSelected()Checks whether "No Color" is currently selected.- Returns:
trueif "No Color" is selected
-
getColor
Gets the currently selected color.If "No Color" is selected, this method returns a fully transparent color for compatibility with earlier behavior. In normal dialog use,
ColorDialog.getColor()converts that state tonull.- Returns:
- the selected color, or a fully transparent color when "No Color" is selected
-