edu.wisc.ssec.mcidasv.data.dateChooser
Class JSpinField

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 edu.wisc.ssec.mcidasv.data.dateChooser.JSpinField
All Implemented Interfaces:
ActionListener, FocusListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, CaretListener, ChangeListener

public class JSpinField
extends JPanel
implements ChangeListener, CaretListener, ActionListener, FocusListener

JSpinField is a numeric field with 2 spin buttons to increase or decrease the value. It has the same interface as the "old" JSpinField but uses a JSpinner internally (since J2SE SDK 1.4) rather than a scrollbar for emulating the spin buttons.

Version:
$LastChangedRevision: 85 $, $LastChangedDate: 2006-04-28 13:50:52 +0200 (Fr, 28 Apr 2006) $
Author:
Kai Toedter
See Also:
Serialized Form

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
protected  Color darkGreen
           
protected  int max
           
protected  int min
           
private static long serialVersionUID
           
protected  JSpinner spinner
           
protected  JTextField textField
          the text (number) field
protected  int value
           
 
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
JSpinField()
          Default JSpinField constructor.
JSpinField(int min, int max)
          JSpinField constructor with given minimum and maximum vaues and initial value 0.
 
Method Summary
 void actionPerformed(ActionEvent e)
          After any user input, the value of the textfield is proofed.
 void adjustWidthToMaximumValue()
           
 void caretUpdate(CaretEvent e)
          After any user input, the value of the textfield is proofed.
 void focusGained(FocusEvent e)
           
 void focusLost(FocusEvent e)
          The value of the text field is checked against a valid (green) value.
 int getMaximum()
          Returns the maximum value.
 int getMinimum()
          Returns the minimum value.
 Component getSpinner()
          Returns the year chooser's spinner (which allow the focus to be set to it).
 int getValue()
          Returns the value.
static void main(String[] s)
          Creates a JFrame with a JSpinField inside and can be used for testing.
 void setEnabled(boolean enabled)
          Enable or disable the JSpinField.
 void setFont(Font font)
          Sets the font property.
 void setForeground(Color fg)
          Sets the foreground
 void setHorizontalAlignment(int alignment)
          Sets the horizontal alignment of the displayed value.
 void setMaximum(int newMaximum)
          Sets the maximum value and adjusts the preferred width.
 void setMinimum(int newMinimum)
          Sets the minimum value.
 void setValue(int newValue)
          Sets the value.
protected  void setValue(int newValue, boolean updateTextField, boolean firePropertyChange)
          Sets the value attribute of the JSpinField object.
 void stateChanged(ChangeEvent e)
          Is invoked when the spinner model 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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, 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, 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

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

spinner

protected JSpinner spinner

textField

protected JTextField textField
the text (number) field


min

protected int min

max

protected int max

value

protected int value

darkGreen

protected Color darkGreen
Constructor Detail

JSpinField

public JSpinField()
Default JSpinField constructor. The valid value range is between Integer.MIN_VALUE and Integer.MAX_VALUE. The initial value is 0.


JSpinField

public JSpinField(int min,
                  int max)
JSpinField constructor with given minimum and maximum vaues and initial value 0.

Method Detail

adjustWidthToMaximumValue

public void adjustWidthToMaximumValue()

stateChanged

public void stateChanged(ChangeEvent e)
Is invoked when the spinner model changes

Specified by:
stateChanged in interface ChangeListener
Parameters:
e - the ChangeEvent

setValue

protected void setValue(int newValue,
                        boolean updateTextField,
                        boolean firePropertyChange)
Sets the value attribute of the JSpinField object.

Parameters:
newValue - The new value
updateTextField - true if text field should be updated

setValue

public void setValue(int newValue)
Sets the value. This is a bound property.

Parameters:
newValue - the new value
See Also:
getValue()

getValue

public int getValue()
Returns the value.

Returns:
the value value

setMinimum

public void setMinimum(int newMinimum)
Sets the minimum value.

Parameters:
newMinimum - the new minimum value
See Also:
getMinimum()

getMinimum

public int getMinimum()
Returns the minimum value.

Returns:
the minimum value

setMaximum

public void setMaximum(int newMaximum)
Sets the maximum value and adjusts the preferred width.

Parameters:
newMaximum - the new maximum value
See Also:
getMaximum()

setHorizontalAlignment

public void setHorizontalAlignment(int alignment)
Sets the horizontal alignment of the displayed value.

Parameters:
alignment - the horizontal alignment

getMaximum

public int getMaximum()
Returns the maximum value.

Returns:
the maximum value

setFont

public void setFont(Font font)
Sets the font property.

Overrides:
setFont in class JComponent
Parameters:
font - the new font

setForeground

public void setForeground(Color fg)
Sets the foreground

Overrides:
setForeground in class JComponent
Parameters:
fg - the foreground

caretUpdate

public void caretUpdate(CaretEvent e)
After any user input, the value of the textfield is proofed. Depending on being an integer, the value is colored green or red.

Specified by:
caretUpdate in interface CaretListener
Parameters:
e - the caret event

actionPerformed

public void actionPerformed(ActionEvent e)
After any user input, the value of the textfield is proofed. Depending on being an integer, the value is colored green or red. If the textfield is green, the enter key is accepted and the new value is set.

Specified by:
actionPerformed in interface ActionListener
Parameters:
e - Description of the Parameter

setEnabled

public void setEnabled(boolean enabled)
Enable or disable the JSpinField.

Overrides:
setEnabled in class JComponent
Parameters:
enabled - The new enabled value

getSpinner

public Component getSpinner()
Returns the year chooser's spinner (which allow the focus to be set to it).

Returns:
Component the spinner or null, if the month chooser has no spinner

main

public static void main(String[] s)
Creates a JFrame with a JSpinField inside and can be used for testing.

Parameters:
s - The command line arguments

focusGained

public void focusGained(FocusEvent e)
Specified by:
focusGained in interface FocusListener

focusLost

public void focusLost(FocusEvent e)
The value of the text field is checked against a valid (green) value. If valid, the value is set and a property change is fired.

Specified by:
focusLost in interface FocusListener