Class NumberTextField
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
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:
-
Nested Class Summary
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
Modifier and TypeFieldDescriptionprotected double
static final ImageIcon
static final ImageIcon
static final ImageIcon
static final ImageIcon
static final ImageIcon
static final ImageIcon
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
Fields inherited from class java.awt.Component
accessibleContext, 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
ConstructorDescriptionNumberTextField
(double initialValue) Creates a NumberTextField which does not display the belly button or arrows.NumberTextField
(double initialValue, boolean doubleEachTime) Creates a NumberTextField which (ifdoubleEachTime
) doubles or halves the current value, or (if notdoubleEachTime
) increases or decreases by 1 each time.NumberTextField
(double initialValue, double multiply, double add) Creates a NumberTextField according to the provided parameters.NumberTextField
(String label, double initialValue) Creates a NumberTextField which does not display the belly button or arrows.NumberTextField
(String label, double initialValue, boolean doubleEachTime) Creates a NumberTextField with a provided label.NumberTextField
(String label, double initialValue, double multiply, double add) Creates a NumberTextField with a provided label. -
Method Summary
Modifier and TypeMethodDescriptiongetField()
double
getText()
double
getValue()
Returns the most recently set value.double
newValue
(double newValue) Override this to be informed when a new value has been set.void
void
setEnabled
(boolean b) void
setInitialValue
(double initialValue) void
Only call this to access the value field directlyvoid
setToolTipText
(String text) void
setValue
(double val) Sets the value without filtering first.void
submit()
void
update()
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, getUI, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, 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, 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, getAccessibleContext, 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, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Field Details
-
currentValue
protected double currentValue -
I_DOWN
-
I_DOWN_PRESSED
-
I_BELLY
-
I_BELLY_PRESSED
-
I_UP
-
I_UP_PRESSED
-
-
Constructor Details
-
NumberTextField
public NumberTextField(double initialValue) Creates a NumberTextField which does not display the belly button or arrows. -
NumberTextField
Creates a NumberTextField which does not display the belly button or arrows. -
NumberTextField
public NumberTextField(double initialValue, boolean doubleEachTime) Creates a NumberTextField which (ifdoubleEachTime
) doubles or halves the current value, or (if notdoubleEachTime
) 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
Creates a NumberTextField with a provided label. If the label is null or empty, no label is created. Creates a NumberTextField which (ifdoubleEachTime
) doubles or halves the current value, or (if notdoubleEachTime
) increases or decreases by 1 each time. -
NumberTextField
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 Details
-
setEditedColor
-
getEditedColor
-
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. -
getField
-
setInitialValue
public void setInitialValue(double initialValue) -
getInitialValue
public double getInitialValue() -
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
- Overrides:
setToolTipText
in classJComponent
-
setEnabled
public void setEnabled(boolean b) - Overrides:
setEnabled
in classJComponent
-
setText
Only call this to access the value field directly -
getText
-