chrriis.dj.swingsuite
Class JTextEntryField

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.text.JTextComponent
                  extended by javax.swing.JTextField
                      extended by chrriis.dj.swingsuite.JTextEntryField
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible, Scrollable, SwingConstants
Direct Known Subclasses:
JNumberEntryField

public class JTextEntryField
extends JTextField

A text entry field, which supports validation, formatting and masks.

Author:
Christopher Deckers
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JTextField
JTextField.AccessibleJTextField
 
Nested classes/interfaces inherited from class javax.swing.text.JTextComponent
JTextComponent.AccessibleJTextComponent, JTextComponent.DropLocation, JTextComponent.KeyBinding
 
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
 
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.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
protected JTextEntryField(int columns)
          Construct a text entry field.
protected JTextEntryField(int columns, TextEntryMask textMask)
          Construct a text entry field with a mask.
  JTextEntryField(String text)
          Construct a text entry field.
  JTextEntryField(String text, int columns)
          Construct a text entry field.
  JTextEntryField(String text, int columns, int maxLength)
          Construct a text entry field.
  JTextEntryField(String text, int columns, String pattern)
          Construct a text entry field with input restricted by a pattern-based mask.
  JTextEntryField(String text, int columns, TextEntryMask mask)
          Construct a text entry field.
  JTextEntryField(String text, String mask)
          Construct a text entry field.
 
Method Summary
 void addTextEntryFieldListener(TextEntryFieldListener textEntryFieldListener)
          Add a text entry listener.
 TextEntryFormatter getDisplayFormatter()
          Get the formatter for the text when the component does not have the focus.
 int getMaximumLength()
          Get the maximum length, or a negative value if there is no maximum.
 TextEntryFieldListener[] getTextEntryFieldListeners()
          Get the text entry field listeners that are registered.
 TextEntryValidator getValidator()
          Get the validator to use when data is to be validated.
 String getValidText()
          Get a valid text, which is the current text if it is valid or the last valid one.
 boolean isFocusTrappedOnInvalidText()
          Indicate wether the focus is trapped or if it can escape the field when the text is invalid.
 boolean isSelectingAllOnFocus()
          Indicate whether this field selects all of its text when it acquires the focus.
 boolean isTipDisplayedOnError()
          Indicate if the tip is displayed on error.
 void removeTextEntryFieldListener(TextEntryFieldListener textEntryFieldListener)
          Remove a text entry field listener.
protected  void revalidateText()
          Try to set a valid text in the field.
 void selectAll()
           
 void setDocument(Document doc)
           
 void setFocusTrappedOnInvalidText(boolean isFocusTrappedOnInvalidText)
          Set whether the focus is trapped or if it can escape the field when the text is invalid.
 void setFormatter(TextEntryFormatter formatter)
          Set the formatter for the text when the component does not have the focus.
 void setMaximumLength(int maximumLength)
          Set the maximum text length.
 void setSelectAllOnFocus(boolean isSelectingAllOnFocus)
          Set whether this field selects all of its text when it acquires the focus.
 void setText(String text)
          Set some text, which only works when the text to set is valid.
 void setTipDisplayedOnError(boolean isTipDisplayedOnError)
          Set if the tip is displayed on error.
 void setValidator(TextEntryValidator validator)
          Set the text validator.
 void updateUI()
           
 
Methods 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, setScrollOffset
 
Methods 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, moveCaretPosition, paste, print, print, print, processInputMethodEvent, read, removeCaretListener, removeKeymap, removeNotify, replaceSelection, select, setCaret, setCaretColor, setCaretPosition, setComponentOrientation, setDisabledTextColor, setDragEnabled, setDropMode, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setMargin, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setUI, viewToModel, write
 
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, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, paint, 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, update
 
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, 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, 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, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, 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
 

Constructor Detail

JTextEntryField

public JTextEntryField(String text)
Construct a text entry field.

Parameters:
text - the default text.

JTextEntryField

public JTextEntryField(String text,
                       int columns)
Construct a text entry field.

Parameters:
text - the default text.
columns - The number of columns used to calculate the preferred width, or zero for the default size calculation.

JTextEntryField

public JTextEntryField(String text,
                       int columns,
                       int maxLength)
Construct a text entry field.

Parameters:
text - the default text.
columns - The number of columns used to calculate the preferred width, or zero for the default size calculation.
maxLength - the maximum length of the text.

JTextEntryField

public JTextEntryField(String text,
                       String mask)
Construct a text entry field.

Parameters:
text - the default text.
mask - the mask to apply when entering the text.

JTextEntryField

public JTextEntryField(String text,
                       int columns,
                       String pattern)
Construct a text entry field with input restricted by a pattern-based mask. The pattern uses these special tokens:
# = Character.isDigit.
U = Character.isLetter mapped to uppercase.
L = Character.isLetter mapped to lowercase.
A = Character.isLetter or Character.isDigit.
? = Character.isLetter.
* = Any character.
H = Any hex character (0-9, a-f or A-F).
' = Escape any of the special formatting tokens.

Parameters:
text - the default text.
columns - The number of columns used to calculate the preferred width, or zero for the default size calculation.
pattern - the pattern of the mask to apply when entering the text.

JTextEntryField

public JTextEntryField(String text,
                       int columns,
                       TextEntryMask mask)
Construct a text entry field.

Parameters:
text - the default text.
columns - The number of columns used to calculate the preferred width, or zero for the default size calculation.
mask - the mask to apply when entering the text.

JTextEntryField

protected JTextEntryField(int columns)
Construct a text entry field.

Parameters:
columns - The number of columns used to calculate the preferred width, or zero for the default size calculation.

JTextEntryField

protected JTextEntryField(int columns,
                          TextEntryMask textMask)
Construct a text entry field with a mask.

Parameters:
columns - The number of columns used to calculate the preferred width, or zero for the default size calculation.
Method Detail

updateUI

public void updateUI()
Overrides:
updateUI in class JTextComponent

setFocusTrappedOnInvalidText

public void setFocusTrappedOnInvalidText(boolean isFocusTrappedOnInvalidText)
Set whether the focus is trapped or if it can escape the field when the text is invalid.

Parameters:
isFocusTrappedOnInvalidText - true if the focus is trapped, false otherwise.

isFocusTrappedOnInvalidText

public boolean isFocusTrappedOnInvalidText()
Indicate wether the focus is trapped or if it can escape the field when the text is invalid.

Returns:
trus if the focus is trapped, false otherwise.

setDocument

public void setDocument(Document doc)
Overrides:
setDocument in class JTextField

setMaximumLength

public void setMaximumLength(int maximumLength)
Set the maximum text length.

Parameters:
maximumLength - The maximum length, or a negative value if there is no limit.

revalidateText

protected void revalidateText()
Try to set a valid text in the field.


getMaximumLength

public int getMaximumLength()
Get the maximum length, or a negative value if there is no maximum.

Returns:
the maximum length, or a negative value.

getValidator

public TextEntryValidator getValidator()
Get the validator to use when data is to be validated.

Returns:
the text validator.

setValidator

public void setValidator(TextEntryValidator validator)
Set the text validator.

Parameters:
validator - The text validator, or null if there is no validation to perform.

setFormatter

public void setFormatter(TextEntryFormatter formatter)
Set the formatter for the text when the component does not have the focus.

Parameters:
formatter - The new formatter, or null to remove any formatting.

getDisplayFormatter

public TextEntryFormatter getDisplayFormatter()
Get the formatter for the text when the component does not have the focus.

Returns:
The formatter, or null if there is no formatting.

setTipDisplayedOnError

public void setTipDisplayedOnError(boolean isTipDisplayedOnError)
Set if the tip is displayed on error.

Parameters:
isTipDisplayedOnError - indicate if the tip must be displayed on error

isTipDisplayedOnError

public boolean isTipDisplayedOnError()
Indicate if the tip is displayed on error.

Returns:
True if the tip is displayed on error

getValidText

public String getValidText()
Get a valid text, which is the current text if it is valid or the last valid one.

Returns:
a valid text.

setText

public void setText(String text)
Set some text, which only works when the text to set is valid.

Overrides:
setText in class JTextComponent
Parameters:
text - The text to set.

selectAll

public void selectAll()
Overrides:
selectAll in class JTextComponent

setSelectAllOnFocus

public void setSelectAllOnFocus(boolean isSelectingAllOnFocus)
Set whether this field selects all of its text when it acquires the focus.

Parameters:
isSelectingAllOnFocus - true if the text should be selected when focus is acquired, false otherwise.

isSelectingAllOnFocus

public boolean isSelectingAllOnFocus()
Indicate whether this field selects all of its text when it acquires the focus.

Returns:
true if the text should be selected when focus is acquired, false otherwise.

addTextEntryFieldListener

public void addTextEntryFieldListener(TextEntryFieldListener textEntryFieldListener)
Add a text entry listener.

Parameters:
textEntryFieldListener - the listener to add.

removeTextEntryFieldListener

public void removeTextEntryFieldListener(TextEntryFieldListener textEntryFieldListener)
Remove a text entry field listener.

Parameters:
textEntryFieldListener - the listener to remove.

getTextEntryFieldListeners

public TextEntryFieldListener[] getTextEntryFieldListeners()
Get the text entry field listeners that are registered.

Returns:
the registered text entry field listeners.