Class ColorPickerPanel
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Accessible
ColorPicker
that depicts a wide range of colors.
This panel can operate in 6 different modes. In each mode a different
property is held constant: hue, saturation, brightness, red, green, or blue.
(Each property is identified with a constant in the ColorPicker
class,
such as: ColorPicker.HUE
or ColorPicker.GREEN
.)
In saturation and brightness mode, a wheel is used. Although it doesn't use as many pixels as a square does: it is a very aesthetic model since the hue can wrap around in a complete circle. (Also, on top of looks, this is how most people learn to think the color spectrum, so it has that advantage, too). In all other modes a square is used.
The user can click in this panel to select a new color. The selected color is highlighted with a circle drawn around it. Also once this component has the keyboard focus, the user can use the arrow keys to traverse the available colors.
Note this component is public and exists independently of the
ColorPicker
class. The only way this class is dependent
on the ColorPicker
class is when the constants for the modes
are used.
The graphic in this panel will be based on either the width or the height of this component: depending on which is smaller.
- See Also:
-
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
FieldsFields 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 -
Method Summary
Modifier and TypeMethodDescriptionvoid
This listener will be notified when the current HSB or RGB values change.protected void
float[]
getHSB()
float[]
Returns the color at the indicated point in HSB values.int[]
getRGB()
int[]
Returns the color at the indicated point in RGB values.void
void
Remove aChangeListener
so it is no longer notified when the selected color changes.void
setHSB
(float h, float s, float b) Sets the selected color of this panel.void
setMode
(int mode) Set the mode of this panel.void
setRGB
(int r, int g, int b) Sets the selected color of this panel.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, 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
-
MAX_SIZE
public static final int MAX_SIZEThe maximum size the graphic will be. No matter how big the panel becomes, the graphic will not exceed this length.(This is enforced because only 1 BufferedImage is used to render the graphic. This image is created once at a fixed size and is never replaced.)
- See Also:
-
-
Constructor Details
-
ColorPickerPanel
public ColorPickerPanel()Creates a newColorPickerPanel
-
-
Method Details
-
addChangeListener
This listener will be notified when the current HSB or RGB values change. -
removeChangeListener
Remove aChangeListener
so it is no longer notified when the selected color changes. -
fireChangeListeners
protected void fireChangeListeners() -
paint
- Overrides:
paint
in classJComponent
-
setMode
public void setMode(int mode) Set the mode of this panel.- Parameters:
mode
- This must be one of the following constants from theColorPicker
class:HUE
,SAT
,BRI
,RED
,GREEN
, orBLUE
-
setRGB
public void setRGB(int r, int g, int b) Sets the selected color of this panel.If this panel is in HUE, SAT, or BRI mode, then this method converts these values to HSB coordinates and calls
setHSB
.This method may regenerate the graphic if necessary.
- Parameters:
r
- the red value of the selected color.g
- the green value of the selected color.b
- the blue value of the selected color.
-
getHSB
public float[] getHSB()- Returns:
- the HSB values of the selected color. Each value is between [0,1].
-
getRGB
public int[] getRGB()- Returns:
- the RGB values of the selected color. Each value is between [0,255].
-
getHSB
Returns the color at the indicated point in HSB values.- Parameters:
p
- a point relative to this panel.- Returns:
- the HSB values at the point provided.
-
getRGB
Returns the color at the indicated point in RGB values.- Parameters:
p
- a point relative to this panel.- Returns:
- the RGB values at the point provided.
-
setHSB
public void setHSB(float h, float s, float b) Sets the selected color of this panel.If this panel is in RED, GREEN, or BLUE mode, then this method converts these values to RGB coordinates and calls
setRGB
.This method may regenerate the graphic if necessary.
- Parameters:
h
- the hue value of the selected color.s
- the saturation value of the selected color.b
- the brightness value of the selected color.
-