Module is.codion.swing.common.ui
Class NumberField<T extends Number>
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.text.JTextComponent
javax.swing.JTextField
is.codion.swing.common.ui.component.text.HintTextField
is.codion.swing.common.ui.component.text.NumberField<T>
- Type Parameters:
T- the Number type
- All Implemented Interfaces:
ImageObserver,MenuContainer,Serializable,Accessible,Scrollable,SwingConstants
A text field for numbers.
Use
builder(Class) or builder(Class, Value) for NumberField.Builder instances.- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceNumberField.Builder<T extends Number>Builds a NumberFieldNested classes/interfaces inherited from class javax.swing.JTextField
JTextField.AccessibleJTextFieldNested classes/interfaces inherited from class javax.swing.text.JTextComponent
JTextComponent.AccessibleJTextComponent, JTextComponent.DropLocation, JTextComponent.KeyBindingNested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponentNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final is.codion.common.property.PropertyValue<Boolean>Specifies whether NumberFields should convert a grouping separator symbol to a decimal separator symbol when typed.Fields inherited from class javax.swing.JTextField
notifyActionFields inherited from class javax.swing.text.JTextComponent
DEFAULT_KEYMAP, FOCUS_ACCELERATOR_KEYFields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWFields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTHFields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST -
Method Summary
Modifier and TypeMethodDescriptionstatic <T extends Number>
NumberField.Builder<T>static <T extends Number>
NumberField.Builder<T>intbooleanbooleanvoidsetConvertGroupingToDecimalSeparator(boolean convertGroupingToDecimalSeparator) Specifies whether this number field should convert a grouping separator symbol to a decimal separator symbol when typed.voidsetDecimalSeparator(char decimalSeparator) Sets the decimal separatorvoidsetDocument(Document doc) voidsetGroupingSeparator(char groupingSeparator) Sets the grouping separatorvoidsetGroupingUsed(boolean groupingUsed) Set whether grouping will be used in this field.voidsetMaximumFractionDigits(int maximumFractionDigits) voidsetMaximumValue(Number maximumValue) voidsetMinimumValue(Number minimumValue) voidvoidsetSeparators(char decimalSeparator, char groupingSeparator) Set the decimal and grouping separators for this fieldvoidsetSilentValidation(boolean silentValidation) Default false.voidsetValueRange(Number minimumValue, Number maximumValue) Sets the range of values this field should allowis.codion.common.value.ValueObserver<T>value()Methods inherited from class is.codion.swing.common.ui.component.text.HintTextField
addFocusListener, addPropertyChangeListener, hint, paintMethods inherited from class javax.swing.JTextField
actionPropertyChanged, addActionListener, configurePropertiesFromAction, createActionPropertyChangeListener, createDefaultModel, fireActionPerformed, getAccessibleContext, getAction, getActionListeners, getActions, getColumns, getColumnWidth, getHorizontalAlignment, getHorizontalVisibility, getPreferredSize, getScrollOffset, getUIClassID, isValidateRoot, paramString, postActionEvent, removeActionListener, scrollRectToVisible, setAction, setActionCommand, setColumns, setFont, setHorizontalAlignment, setScrollOffsetMethods inherited from class javax.swing.text.JTextComponent
addCaretListener, addInputMethodListener, addKeymap, copy, cut, fireCaretUpdate, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getDropLocation, getDropMode, getFocusAccelerator, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getNavigationFilter, getPreferredScrollableViewportSize, getPrintable, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getText, getToolTipText, getUI, isEditable, loadKeymap, modelToView, modelToView2D, moveCaretPosition, paste, print, print, print, processInputMethodEvent, read, removeCaretListener, removeKeymap, removeNotify, replaceSelection, restoreComposedText, saveComposedText, select, selectAll, setCaret, setCaretColor, setCaretPosition, setComponentOrientation, setDisabledTextColor, setDragEnabled, setDropMode, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setMargin, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setText, setUI, updateUI, viewToModel, viewToModel2D, writeMethods 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, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, updateMethods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, 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, validateTreeMethods inherited from class java.awt.Component
action, add, addComponentListener, addHierarchyBoundsListener, addHierarchyListener, 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, 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, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Field Details
-
CONVERT_GROUPING_TO_DECIMAL_SEPARATOR
public static final is.codion.common.property.PropertyValue<Boolean> CONVERT_GROUPING_TO_DECIMAL_SEPARATORSpecifies whether NumberFields should convert a grouping separator symbol to a decimal separator symbol when typed. This solves the problem of locale controlling whether the numpad comma acts as a decimal symbol, which is usually what we want. Value type: Boolean
Default value: true
-
-
Method Details
-
setDocument
- Overrides:
setDocumentin classJTextField
-
setGroupingUsed
public void setGroupingUsed(boolean groupingUsed) Set whether grouping will be used in this field.- Parameters:
groupingUsed- true if grouping should be used false otherwise
-
setNumber
- Parameters:
number- the number to display in this field
-
getNumber
- Returns:
- the number being displayed in this field
-
setValueRange
Sets the range of values this field should allow- Parameters:
minimumValue- the minimum valuemaximumValue- the maximum value
-
setMinimumValue
- Parameters:
minimumValue- the minimum value
-
getMinimumValue
- Returns:
- the minimum value this field should accept
-
setMaximumValue
- Parameters:
maximumValue- the maximum value
-
getMaximumValue
- Returns:
- the maximum value this field should accept
-
setSeparators
public void setSeparators(char decimalSeparator, char groupingSeparator) Set the decimal and grouping separators for this field- Parameters:
decimalSeparator- the decimal separatorgroupingSeparator- the grouping separator- Throws:
IllegalArgumentException- in case both separators are the same character
-
setDecimalSeparator
public void setDecimalSeparator(char decimalSeparator) Sets the decimal separator- Parameters:
decimalSeparator- the separator
-
setGroupingSeparator
public void setGroupingSeparator(char groupingSeparator) Sets the grouping separator- Parameters:
groupingSeparator- the separator
-
getMaximumFractionDigits
public int getMaximumFractionDigits()- Returns:
- the maximum number of fraction digits this field shows
- Throws:
IllegalStateException- in case this NumberField is not based on a decimal type
-
setMaximumFractionDigits
public void setMaximumFractionDigits(int maximumFractionDigits) - Parameters:
maximumFractionDigits- the maximum number of fraction digits this field shows- Throws:
IllegalStateException- in case this NumberField is not based on a decimal type
-
setConvertGroupingToDecimalSeparator
public void setConvertGroupingToDecimalSeparator(boolean convertGroupingToDecimalSeparator) Specifies whether this number field should convert a grouping separator symbol to a decimal separator symbol when typed. This solves the problem of locale controlling whether the numpad comma acts as a decimal symbol, which is usually what we want. True by default.- Parameters:
convertGroupingToDecimalSeparator- true if grouping separators should be converted to decimal separators when typed
-
isConvertGroupingToDecimalSeparator
public boolean isConvertGroupingToDecimalSeparator()- Returns:
- true if grouping separators should be converted to decimal separators when typed
-
setSilentValidation
public void setSilentValidation(boolean silentValidation) Default false.- Parameters:
silentValidation- true if invalid input should be silently prevented instead of throwing validation exceptions
-
isSilentValidation
public boolean isSilentValidation()- Returns:
- true if invalid input should be silently prevented instead of throwing validation exceptions
-
value
- Returns:
- an observer notified each time the underlying value changes
-
builder
- Type Parameters:
T- the value type- Parameters:
valueClass- the value class- Returns:
- a builder for a component
-
builder
public static <T extends Number> NumberField.Builder<T> builder(Class<T> valueClass, is.codion.common.value.Value<T> linkedValue) - Type Parameters:
T- the value type- Parameters:
valueClass- the value classlinkedValue- the value to link to the component- Returns:
- a builder for a component
-