|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
sim.util.gui.NumberTextField
public class NumberTextField
A simple class that lets you specify a label and validate a numerical value. NumberTextField assumes access to several image files for the widgets to the right of the text field: a left-arrow button, a right-arrow button, and a "belly button". The left-arrow button decreases the numerical value, the right-arrow button increases it, and the belly button resets it to its initial default value. You can also change the value in the text field proper. Why use this class instead of a slider? Because it is not ranged: the numbers can be any value.
NumberTextField lets users increase values according to a provided formula of the form value = value * M + A, and similarly decrease values as value = (value - A) / M. You specify the values of M and A and the initial default value. This gives you some control on how values should change: linearly or geometrically.
You can exercise further control by subclassing the class and overriding the newValue(val) method, which filters all newly user-set values and "corrects" them. Programmatically set values (by calling setValue(...)) are not filtered through newValue by default. If you need to filter, you should do setValue(newValue(val));
NumberTextFields can also be provided with an optional label.
Nested Class Summary |
---|
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.BltBufferStrategy, java.awt.Component.FlipBufferStrategy |
Field Summary | |
---|---|
double |
add
|
javax.swing.JButton |
bellyButton
|
double |
currentValue
|
java.awt.Color |
defaultColor
|
javax.swing.JButton |
downButton
|
java.awt.Color |
editedColor
|
javax.swing.JLabel |
fieldLabel
|
java.awt.event.FocusAdapter |
focusAdapter
|
static javax.swing.ImageIcon |
I_BELLY
|
static javax.swing.ImageIcon |
I_BELLY_PRESSED
|
static javax.swing.ImageIcon |
I_DOWN
|
static javax.swing.ImageIcon |
I_DOWN_PRESSED
|
static javax.swing.ImageIcon |
I_UP
|
static javax.swing.ImageIcon |
I_UP_PRESSED
|
double |
initialValue
|
java.awt.event.KeyListener |
listener
|
double |
multiply
|
javax.swing.JButton |
upButton
|
javax.swing.JTextField |
valField
|
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 | |
---|---|
NumberTextField(double initialValue)
Creates a NumberTextField which does not display the belly button or arrows. |
|
NumberTextField(double initialValue,
boolean doubleEachTime)
Creates a NumberTextField which (if doubleEachTime )
doubles or halves the current value, or (if not doubleEachTime )
increases or decreases by 1 each time. |
|
NumberTextField(double initialValue,
double multiply,
double add)
Creates a NumberTextField according to the provided parameters. |
|
NumberTextField(java.lang.String label,
double initialValue,
boolean doubleEachTime)
Creates a NumberTextField with a provided label. |
|
NumberTextField(java.lang.String label,
double initialValue,
double multiply,
double add)
Creates a NumberTextField with a provided label. |
Method Summary | |
---|---|
java.awt.Color |
getEditedColor()
|
double |
getValue()
Returns the most recently set value. |
static javax.swing.ImageIcon |
iconFor(java.lang.String name)
|
double |
newValue(double newValue)
Override this to be informed when a new value has been set. |
void |
setEditedColor(java.awt.Color c)
|
void |
setEnabled(boolean b)
|
void |
setToolTipText(java.lang.String text)
|
void |
setValue(double val)
Sets the value without filtering first. |
protected void |
setValues(java.lang.String label,
double initialValue,
double multiply,
double add)
|
void |
submit()
|
void |
update()
|
Methods inherited from class javax.swing.JComponent |
---|
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, 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, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, 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, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI |
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 |
---|
public javax.swing.JTextField valField
public javax.swing.JButton downButton
public javax.swing.JButton upButton
public javax.swing.JButton bellyButton
public javax.swing.JLabel fieldLabel
public double initialValue
public double multiply
public double add
public double currentValue
public java.awt.Color defaultColor
public java.awt.Color editedColor
public static final javax.swing.ImageIcon I_DOWN
public static final javax.swing.ImageIcon I_DOWN_PRESSED
public static final javax.swing.ImageIcon I_BELLY
public static final javax.swing.ImageIcon I_BELLY_PRESSED
public static final javax.swing.ImageIcon I_UP
public static final javax.swing.ImageIcon I_UP_PRESSED
public java.awt.event.KeyListener listener
public java.awt.event.FocusAdapter focusAdapter
Constructor Detail |
---|
public NumberTextField(double initialValue)
public NumberTextField(double initialValue, boolean doubleEachTime)
doubleEachTime
)
doubles or halves the current value, or (if not doubleEachTime
)
increases or decreases by 1 each time.
public NumberTextField(double initialValue, double multiply, double add)
If multiply is 0, then no arrows are shown at all.
public NumberTextField(java.lang.String label, double initialValue, boolean doubleEachTime)
doubleEachTime
)
doubles or halves the current value, or (if not doubleEachTime
)
increases or decreases by 1 each time.
public NumberTextField(java.lang.String label, double initialValue, double multiply, double add)
If multiply is 0, then no arrows are shown at all.
Method Detail |
---|
public void setEditedColor(java.awt.Color c)
public java.awt.Color getEditedColor()
public static javax.swing.ImageIcon iconFor(java.lang.String name)
public void submit()
public void update()
public void setValue(double val)
public double getValue()
protected void setValues(java.lang.String label, double initialValue, double multiply, double add)
public double newValue(double newValue)
public void setToolTipText(java.lang.String text)
setToolTipText
in class javax.swing.JComponent
public void setEnabled(boolean b)
setEnabled
in class javax.swing.JComponent
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |