QJCC homepage

biz.chitec.quarterback.swing
Class NumericTextField

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.text.JTextComponent
                  extended byjavax.swing.JTextField
                      extended bybiz.chitec.quarterback.swing.NumericTextField
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, javax.swing.Scrollable, java.io.Serializable, javax.swing.SwingConstants

public class NumericTextField
extends javax.swing.JTextField

JTextField which only allows numeric input.

Allows integer and (if wanted) floating point numbers to be entered. All numbers may have a "-" in front to indicate a negative value. Floating point numbers can have "." or "," as comma separator and a trailing exponential part starting with "E" or "e".

NumericTextField checks strictly for syntactical correctness of inserted data and rejects any input which would lead to a syntactical incorrect content. Only known "incorrect" number: "-" (only the minus sign without any trailing numeric value). This is interpreted as "0".

Has also some additional methods for setting and receiving numbers directly.

Version:
$Id: f0b19a01b2e1703cdbc5a128c8d14660e1924da9 $
Author:
Dirk Hillbrecht 2000, cantamen/Dirk Hillbrecht/Vadym Trehub 2003-2004, cantamen/Dirk Hillbrecht 2006-2007 Distributed under the terms of the GNU LGPL.
See Also:
Serialized Form

Nested Class Summary
private static class NumericTextField.IntegerDocument
           
 
Nested classes inherited from class javax.swing.JTextField
javax.swing.JTextField.AccessibleJTextField
 
Nested classes inherited from class javax.swing.text.JTextComponent
javax.swing.text.JTextComponent.AccessibleJTextComponent, javax.swing.text.JTextComponent.KeyBinding
 
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
private static char COMMA
           
private  char currentseparator
           
private  boolean floating
           
private  java.text.NumberFormat formatter
           
private static char FULLSTOP
           
private  boolean signed
           
 
Fields inherited from class javax.swing.JTextField
notifyAction
 
Fields inherited from class javax.swing.text.JTextComponent
DEFAULT_KEYMAP, FOCUS_ACCELERATOR_KEY
 
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.Container
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields 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
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
NumericTextField(int cols)
          Creates an input field which only allows the input of signed integer numbers.
NumericTextField(int cols, boolean floatingx)
          Creates an input field for signed integer or double values, formatting is done via toString().
NumericTextField(int cols, boolean floatingx, boolean signedx)
          Creates an input field for signed or unsigned integer or double values, formatting is done via toString().
NumericTextField(int cols, boolean floatingx, boolean signedx, java.text.NumberFormat formatterx)
          Creates an input field which allows only signed or unsigned input of integer or floating point numbers.
NumericTextField(int cols, boolean floatingx, java.text.NumberFormat formatterx)
          Creates an input field which allows only signed or unsigned input of integer or floating point numbers.
 
Method Summary
protected  javax.swing.text.Document createDefaultModel()
           
 double getDouble()
          Return content as floating point value.
 java.lang.Double getDoubleAsObject()
          Return content as Double value.
 java.text.NumberFormat getFormatter()
           
 int getInt()
          Return content as int value, 0 if field is empty
 int getInt(int defaultvalue)
          Return content as int value.
 java.lang.Integer getInteger()
          Return content as Integer value.
 boolean isEmpty()
          Returns whether something has been inserted to the input field.
 boolean isFloating()
          Returns floating 'true' means that floats and doubles are allowed Otherwise - only integers
 void setDouble(double value)
          Set content as double value
 void setDoubleAsObject(java.lang.Double value)
          Set content as Double value
 void setFormatter(java.text.NumberFormat formatterx)
           
 void setInt(int value)
          Set content as int value
 void setInteger(java.lang.Integer value)
          Set content as Integer value
 
Methods inherited from class javax.swing.JTextField
addActionListener, configurePropertiesFromAction, createActionPropertyChangeListener, fireActionPerformed, getAccessibleContext, getAction, getActionListeners, getActions, getColumns, getColumnWidth, getHorizontalAlignment, getHorizontalVisibility, getPreferredSize, getScrollOffset, getUIClassID, isValidateRoot, paramString, postActionEvent, removeActionListener, scrollRectToVisible, setAction, setActionCommand, setColumns, setDocument, setFont, setHorizontalAlignment, setScrollOffset
 
Methods inherited from class javax.swing.text.JTextComponent
addCaretListener, addInputMethodListener, addKeymap, copy, cut, fireCaretUpdate, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getFocusAccelerator, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getNavigationFilter, getPreferredScrollableViewportSize, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getText, getToolTipText, getUI, isEditable, loadKeymap, modelToView, moveCaretPosition, paste, processInputMethodEvent, read, removeCaretListener, removeKeymap, removeNotify, replaceSelection, select, selectAll, setCaret, setCaretColor, setCaretPosition, setComponentOrientation, setDisabledTextColor, setDragEnabled, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setMargin, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setText, setUI, updateUI, viewToModel, write
 
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, 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, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setForeground, 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, 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, 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, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, 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

COMMA

private static final char COMMA
See Also:
Constant Field Values

FULLSTOP

private static final char FULLSTOP
See Also:
Constant Field Values

currentseparator

private char currentseparator

floating

private boolean floating

signed

private boolean signed

formatter

private java.text.NumberFormat formatter
Constructor Detail

NumericTextField

public NumericTextField(int cols,
                        boolean floatingx,
                        boolean signedx,
                        java.text.NumberFormat formatterx)
Creates an input field which allows only signed or unsigned input of integer or floating point numbers.

Parameters:
cols - Width in number of columns
floatingx - Flag whether floating point values are allowed
signedx - Flag whether signed or unsigned values are allowed
formatterx - Formatter for presentation of values which are set through setInteger/Double().

NumericTextField

public NumericTextField(int cols,
                        boolean floatingx)
Creates an input field for signed integer or double values, formatting is done via toString().

Parameters:
cols - Width in columns
floatingx - Flag whether floating point or integer numbers are to be edited

NumericTextField

public NumericTextField(int cols)
Creates an input field which only allows the input of signed integer numbers.

Parameters:
cols - Width in number of columns

NumericTextField

public NumericTextField(int cols,
                        boolean floatingx,
                        boolean signedx)
Creates an input field for signed or unsigned integer or double values, formatting is done via toString().

Parameters:
cols - Width in columns
floatingx - Flag whether floating point or integer numbers are to be edited
signedx - Flag whether signed or unsigned values are allowed

NumericTextField

public NumericTextField(int cols,
                        boolean floatingx,
                        java.text.NumberFormat formatterx)
Creates an input field which allows only signed or unsigned input of integer or floating point numbers.

Parameters:
cols - Width in number of columns
floatingx - Flag whether floating point values are allowed
formatterx - Formatter for presentation of values which are set through setInteger/Double().
Method Detail

setFormatter

public void setFormatter(java.text.NumberFormat formatterx)

getFormatter

public java.text.NumberFormat getFormatter()

createDefaultModel

protected javax.swing.text.Document createDefaultModel()

setInt

public void setInt(int value)
Set content as int value


setDouble

public void setDouble(double value)
Set content as double value


getInt

public int getInt(int defaultvalue)
Return content as int value. If content is floating point, return only integer part. If nothing is entered, return defaultvalue

Returns:
Content as int value, defaultvalue if field is empty

getInt

public int getInt()
Return content as int value, 0 if field is empty

Returns:
Content as int value, 0 if field is empty

getDouble

public double getDouble()
Return content as floating point value.

Returns:
Content as floating point value

setInteger

public void setInteger(java.lang.Integer value)
Set content as Integer value


setDoubleAsObject

public void setDoubleAsObject(java.lang.Double value)
Set content as Double value


isFloating

public boolean isFloating()
Returns floating 'true' means that floats and doubles are allowed Otherwise - only integers


getInteger

public java.lang.Integer getInteger()
Return content as Integer value. If content is floating point, return only integer part.

Returns:
Content as Integer value

getDoubleAsObject

public java.lang.Double getDoubleAsObject()
Return content as Double value.

Returns:
Content as Double value

isEmpty

public boolean isEmpty()
Returns whether something has been inserted to the input field. Does not check syntactical correctness of inserted data

Returns:
True if the field is empty.

QJCC homepage