Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## sim.util.gui
Class NumberTextField

    java.lang.Object
      java.awt.Component
          java.awt.Container
              javax.swing.JComponent
                  sim.util.gui.NumberTextField

All Implemented Interfaces:
  java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class NumberTextField
extends javax.swing.JComponent

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.

See Also:
  Serialized Form

Nested Class Summary

Nested classes inherited from class javax.swing.JComponent
`javax.swing.JComponent.AccessibleJComponent`

Nested classes inherited from class java.awt.Container
`java.awt.Container.AccessibleAWTContainer`

Nested classes 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, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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

### valField

    public javax.swing.JTextField valField

### downButton

    public javax.swing.JButton downButton

### upButton

    public javax.swing.JButton upButton

### bellyButton

    public javax.swing.JButton bellyButton

### fieldLabel

    public javax.swing.JLabel fieldLabel

### initialValue

    public double initialValue

### multiply

    public double multiply

### add

    public double add

### currentValue

    public double currentValue

### defaultColor

    public java.awt.Color defaultColor

### editedColor

    public java.awt.Color editedColor

### I_DOWN

    public static final javax.swing.ImageIcon I_DOWN

### I_DOWN_PRESSED

    public static final javax.swing.ImageIcon I_DOWN_PRESSED

### I_BELLY

    public static final javax.swing.ImageIcon I_BELLY

### I_BELLY_PRESSED

    public static final javax.swing.ImageIcon I_BELLY_PRESSED

### I_UP

    public static final javax.swing.ImageIcon I_UP

### I_UP_PRESSED

    public static final javax.swing.ImageIcon I_UP_PRESSED

### listener

    public java.awt.event.KeyListener listener

### focusAdapter

    public java.awt.event.FocusAdapter focusAdapter

Constructor Detail

### NumberTextField

    public NumberTextField(double initialValue)

  Creates a NumberTextField which does not display the belly button or arrows.

### NumberTextField

    public 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

    public NumberTextField(double initialValue,
                           double multiply,
                           double add)

  Creates a NumberTextField according to the provided parameters. initialValue specifies the initial number value. multiply and add work as follows: If the right arrow is pressed, then the current value is changed to newValue(value * multiply + add); similarly, if the left arrow is pressed, then the current value is changed to newValue((value - add) / multiply); if the belly button is pressed, then the current value is changed to newValue(initialValue); Common settings include:
  initialValue = 1, multiply = 2, add = 0 (start at 1, double each time)
  initialValue = 0, multiply = 1, add = 1 (start at 0, add 1 each time)

  If multiply is 0, then no arrows are shown at all.

### NumberTextField

    public NumberTextField(java.lang.String label,
                           double initialValue,
                           boolean doubleEachTime)

  Creates a NumberTextField with a provided label. If the label is null or empty, no label is created. Creates a NumberTextField which (if `doubleEachTime`) doubles or halves the current value, or (if not `doubleEachTime`) increases or decreases by 1 each time.

### NumberTextField

    public NumberTextField(java.lang.String label,
                           double initialValue,
                           double multiply,
                           double add)

  Creates a NumberTextField with a provided label. If the label is null or empty, no label is created. initialValue specifies the initial number value. multiply and add work as follows: If the right arrow is pressed, then the current value is changed to newValue(value * multiply + add); similarly, if the left arrow is pressed, then the current value is changed to newValue((value - add) / multiply); if the belly button is pressed, then the current value is changed to newValue(initialValue); Common settings include:
  initialValue = 1, multiply = 2, add = 0 (start at 1, double each time)
  initialValue = 0, multiply = 1, add = 1 (start at 0, add 1 each time)

  If multiply is 0, then no arrows are shown at all.

Method Detail

### setEditedColor

    public void setEditedColor(java.awt.Color c)

### getEditedColor

    public java.awt.Color getEditedColor()

### iconFor

    public static javax.swing.ImageIcon iconFor(java.lang.String name)

### submit

    public void submit()

### update

    public void update()

### setValue

    public void setValue(double val)

  Sets the value without filtering first.

### getValue

    public double getValue()

  Returns the most recently set value.

### setValues

    protected void setValues(java.lang.String label,
                             double initialValue,
                             double multiply,
                             double add)

### newValue

    public double newValue(double newValue)

  Override this to be informed when a new value has been set. The return value should be the value you want the display to show instead.

### setToolTipText

    public void setToolTipText(java.lang.String text)

### setEnabled

    public void setEnabled(boolean b)

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD