Package ca.cgjennings.apps.arkham
Class HSBPanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- ca.cgjennings.apps.arkham.HSBPanel
-
- All Implemented Interfaces:
java.awt.event.ActionListener,java.awt.event.FocusListener,java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable,java.util.EventListener,javax.accessibility.Accessible,javax.swing.event.ChangeListener,javax.swing.event.PopupMenuListener
public class HSBPanel extends javax.swing.JPanel implements javax.swing.event.ChangeListener, java.awt.event.ActionListener, java.awt.event.FocusListener, javax.swing.event.PopupMenuListenerA custom UI control for choosing HSB colours.- Author:
- Chris Jennings
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
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
-
-
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
-
-
Constructor Summary
Constructors Constructor Description HSBPanel()Creates new form HSBPanel
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidactionPerformed(java.awt.event.ActionEvent evt)voidcopyTint()voidfocusGained(java.awt.event.FocusEvent evt)voidfocusLost(java.awt.event.FocusEvent evt)float[]getHSB()Returns the selected HSB value.intgetPresetCount()Returns the number of presets, or 0 if none are set.java.lang.StringgetPresetName(int n)Returns a the name of the specified preset value.java.lang.Object[]getPresets()Returns the list of preset values, or null if no presets have been set.float[]getPresetValue(int n)Returns a copy of the HSB components of the specified preset value.TintablegetTintable()java.lang.StringgetTitle()Returns the title displayed for the panel.booleanisPresetsVisible()Returns whether the preset list is visible.voidpasteTint()voidpopupMenuCanceled(javax.swing.event.PopupMenuEvent evt)voidpopupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent evt)voidpopupMenuWillBecomeVisible(javax.swing.event.PopupMenuEvent evt)voidselectPreset(int n)Selects the specified preset value.voidsetEnabled(boolean enable)voidsetHSB(float[] hsb)Sets the selected HSB value using the first three elements of the specified array.voidsetHSB(float h, float s, float b)Sets the selected HSB value.voidsetHSB(java.awt.Color color)Sets the selected HSB value to match the specified color.voidsetPresets(java.lang.Object... presets)Sets a list of preset values that the user can choose from.Setting an empty array has the same effect as passing null, namely, clearing the list of presets.voidsetPresetsVisible(boolean visible)Sets whether a combo box of preset values is shown in the panel.voidsetTintable(Tintable tintable, boolean matchTintableToPanel)voidsetTitle(java.lang.String panelTitle)Sets the title displayed for the panel.voidstateChanged(javax.swing.event.ChangeEvent evt)static voidtakeOverSlider(javax.swing.JLabel label, javax.swing.JSlider slider)java.lang.StringtoString()-
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, 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, 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, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Method Detail
-
setPresetsVisible
public void setPresetsVisible(boolean visible)
Sets whether a combo box of preset values is shown in the panel.- Parameters:
visible- if true, the preset controls are shown
-
isPresetsVisible
public boolean isPresetsVisible()
Returns whether the preset list is visible.- Returns:
- true if the preset controls are visible
-
setPresets
public void setPresets(java.lang.Object... presets)
Sets a list of preset values that the user can choose from.Setting an empty array has the same effect as passing null, namely, clearing the list of presets. Otherwise, the preset values are determined using pairs of elements are follows: The string value of the first element in each pair is used as the name to display for the preset value. If the second value in the pair is a float array, then its first three values determine the h, s, and b component of the preset value, respectively. Otherwise, the string value of the object is parsed into such an array usingSettings.tint(java.lang.String).Examples:
// clear the preset list panel.setPresets(); // create entries "Happy" and "Sad" with values [0.181,0.6,1] and [-0.25,0.33,0.83] panel.setPresets( "Happy", "65,0.6,1", "Sad", "-155,0.33,0.83" ); // create entry "Angry" with value [0,1,0.7] panel.setPresets( "Angry", new float[] {0f,1f,0.7f} ); // same as above, but in a script instead of Java code: panel.setPresets( "Angry", [0,1,0.7] );This method will automatically make the preset controls visible when setting a non-empty list, and hide them when setting an empty list.
- Parameters:
presets- the list of presets to display, or null- Throws:
java.lang.NullPointerException- if an element is nullSettings.ParseError- if a tint string value cannot be parsed
-
getPresetCount
public int getPresetCount()
Returns the number of presets, or 0 if none are set.- Returns:
- the number of preset values
-
getPresetName
public java.lang.String getPresetName(int n)
Returns a the name of the specified preset value.- Parameters:
n- the preset index- Returns:
- the name of the preset with the specifed index
-
getPresetValue
public float[] getPresetValue(int n)
Returns a copy of the HSB components of the specified preset value.- Parameters:
n- the preset index- Returns:
- a copy of the preset's HSB values
-
getPresets
public java.lang.Object[] getPresets()
Returns the list of preset values, or null if no presets have been set. The list will be an exact copy of the passed-in list, or null if no list was set, or the list was empty or null.- Returns:
- an array of preset values in the same format as
setPresets(java.lang.Object...)
-
selectPreset
public void selectPreset(int n)
Selects the specified preset value.- Parameters:
n- the preset index
-
setHSB
public void setHSB(java.awt.Color color)
Sets the selected HSB value to match the specified color.- Parameters:
color- the color to match
-
setHSB
public void setHSB(float h, float s, float b)Sets the selected HSB value.- Parameters:
h- the hue value to sets- the saturation value to setb- the brightness value to set
-
setHSB
public void setHSB(float[] hsb)
Sets the selected HSB value using the first three elements of the specified array.- Parameters:
hsb- an array of at least 3 float values
-
getHSB
public float[] getHSB()
Returns the selected HSB value.- Returns:
- an array containing the hue, saturation, and brightness values
- See Also:
setHSB(float[])
-
actionPerformed
public void actionPerformed(java.awt.event.ActionEvent evt)
- Specified by:
actionPerformedin interfacejava.awt.event.ActionListener
-
focusGained
public void focusGained(java.awt.event.FocusEvent evt)
- Specified by:
focusGainedin interfacejava.awt.event.FocusListener
-
focusLost
public void focusLost(java.awt.event.FocusEvent evt)
- Specified by:
focusLostin interfacejava.awt.event.FocusListener
-
stateChanged
public void stateChanged(javax.swing.event.ChangeEvent evt)
- Specified by:
stateChangedin interfacejavax.swing.event.ChangeListener
-
popupMenuCanceled
public void popupMenuCanceled(javax.swing.event.PopupMenuEvent evt)
- Specified by:
popupMenuCanceledin interfacejavax.swing.event.PopupMenuListener
-
popupMenuWillBecomeInvisible
public void popupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent evt)
- Specified by:
popupMenuWillBecomeInvisiblein interfacejavax.swing.event.PopupMenuListener
-
popupMenuWillBecomeVisible
public void popupMenuWillBecomeVisible(javax.swing.event.PopupMenuEvent evt)
- Specified by:
popupMenuWillBecomeVisiblein interfacejavax.swing.event.PopupMenuListener
-
copyTint
public void copyTint()
-
pasteTint
public void pasteTint()
-
takeOverSlider
public static void takeOverSlider(javax.swing.JLabel label, javax.swing.JSlider slider)
-
getTintable
public Tintable getTintable()
-
setTintable
public void setTintable(Tintable tintable, boolean matchTintableToPanel)
-
setEnabled
public void setEnabled(boolean enable)
- Overrides:
setEnabledin classjavax.swing.JComponent
-
setTitle
public void setTitle(java.lang.String panelTitle)
Sets the title displayed for the panel.- Parameters:
panelTitle- title text
-
getTitle
public java.lang.String getTitle()
Returns the title displayed for the panel.- Returns:
- the title text
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.awt.Component
-
-