org.jhotdraw.color
Class JColorWheel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by org.jhotdraw.color.JColorWheel
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
Direct Known Subclasses:
JHarmonicColorWheel

public class JColorWheel
extends javax.swing.JPanel

The JColorWheel displays a hue/saturation wheel of an HSL or an HSV ColorSystem. The user can click at the wheel to pick a color on the JColorWheel. The JColorWheel should be used together with a color slider for HSL luminance or HSV value.

Version:
$Id: JColorWheel.java 527 2009-06-07 14:28:19Z rawcoder $
Author:
Werner Randelshofer
See Also:
Serialized Form

Nested Class Summary
private  class JColorWheel.ModelHandler
           
private  class JColorWheel.MouseHandler
           
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  int angularIndex
          Angular color component index.
protected  java.awt.Image colorWheelImage
           
protected  ColorWheelImageProducer colorWheelProducer
           
protected  ColorSliderModel model
           
private  JColorWheel.ModelHandler modelHandler
           
private  JColorWheel.MouseHandler mouseHandler
           
protected  int radialIndex
          Radial color component index.
private  ColorSystem sys
           
protected  int verticalIndex
          Vertical color component index.
protected  java.awt.Insets wheelInsets
           
 
Fields inherited from class javax.swing.JComponent
accessibleContext, 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
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
JColorWheel()
          Creates a new instance.
JColorWheel(ColorSystem sys)
           
 
Method Summary
protected  ColorWheelImageProducer createWheelProducer(int w, int h)
           
protected  java.awt.Point getCenter()
           
protected  float[] getColorAt(int x, int y)
           
protected  java.awt.Point getColorLocation(java.awt.Color c)
           
protected  java.awt.Point getColorLocation(float hue, float saturation, float brightness)
           
 ColorSliderModel getModel()
           
 java.awt.Dimension getPreferredSize()
           
protected  int getRadius()
           
protected  java.awt.Point getThumbLocation()
           
 java.awt.Insets getWheelInsets()
           
private  void initComponents()
          This method is called from within the constructor to initialize the form.
protected  void installMouseListeners()
           
 void paintComponent(java.awt.Graphics gr)
           
protected  void paintThumb(java.awt.Graphics2D g)
           
protected  void paintWheel(java.awt.Graphics2D g)
           
 void setAngularComponentIndex(int newValue)
           
 void setModel(ColorSliderModel m)
           
 void setRadialComponentIndex(int newValue)
           
 void setVerticalComponentIndex(int newValue)
           
 void setWheelInsets(java.awt.Insets newValue)
           
 
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, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, 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, transferFocusBackward, 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, hide, 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, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

sys

private ColorSystem sys

wheelInsets

protected java.awt.Insets wheelInsets

colorWheelImage

protected java.awt.Image colorWheelImage

colorWheelProducer

protected ColorWheelImageProducer colorWheelProducer

model

protected ColorSliderModel model

radialIndex

protected int radialIndex
Radial color component index.


angularIndex

protected int angularIndex
Angular color component index.


verticalIndex

protected int verticalIndex
Vertical color component index.


mouseHandler

private JColorWheel.MouseHandler mouseHandler

modelHandler

private JColorWheel.ModelHandler modelHandler
Constructor Detail

JColorWheel

public JColorWheel()
Creates a new instance.


JColorWheel

public JColorWheel(ColorSystem sys)
Method Detail

installMouseListeners

protected void installMouseListeners()

setModel

public void setModel(ColorSliderModel m)

setRadialComponentIndex

public void setRadialComponentIndex(int newValue)

setAngularComponentIndex

public void setAngularComponentIndex(int newValue)

setVerticalComponentIndex

public void setVerticalComponentIndex(int newValue)

setWheelInsets

public void setWheelInsets(java.awt.Insets newValue)

getWheelInsets

public java.awt.Insets getWheelInsets()

getPreferredSize

public java.awt.Dimension getPreferredSize()
Overrides:
getPreferredSize in class javax.swing.JComponent

getModel

public ColorSliderModel getModel()

paintComponent

public void paintComponent(java.awt.Graphics gr)
Overrides:
paintComponent in class javax.swing.JComponent

createWheelProducer

protected ColorWheelImageProducer createWheelProducer(int w,
                                                      int h)

paintWheel

protected void paintWheel(java.awt.Graphics2D g)

paintThumb

protected void paintThumb(java.awt.Graphics2D g)

getCenter

protected java.awt.Point getCenter()

getRadius

protected int getRadius()

getThumbLocation

protected java.awt.Point getThumbLocation()

getColorLocation

protected java.awt.Point getColorLocation(java.awt.Color c)

getColorLocation

protected java.awt.Point getColorLocation(float hue,
                                          float saturation,
                                          float brightness)

getColorAt

protected float[] getColorAt(int x,
                             int y)

initComponents

private void initComponents()
This method is called from within the constructor to initialize the form. WARNING: Do NOT modify this code. The content of this method is always regenerated by the Form Editor.