javax.swing

Class JFormattedTextField

Implemented Interfaces:
Accessible, ImageObserver, MenuContainer, Scrollable, Serializable, SwingConstants

public class JFormattedTextField
extends JTextField

A text field that makes use of a formatter to display and edit a specific type of data. The value that is displayed can be an arbitrary object. The formatter is responsible for displaying the value in a textual form and it may allow editing of the value. Formatters are usually obtained using an instance of JFormattedTextField.AbstractFormatterFactory. This factory is responsible for providing an instance of JFormattedTextField.AbstractFormatter that is able to handle the formatting of the value of the JFormattedTextField.
Since:
1.4
See Also:
Serialized Form

Nested Class Summary

static class
JFormattedTextField.AbstractFormatter
An abstract base implementation for a formatter that can be used by a JTextField.
static class
JFormattedTextField.AbstractFormatterFactory
Delivers instances of an JFormattedTextField.AbstractFormatter for a specific value type for a JFormattedTextField.

Nested classes/interfaces inherited from class javax.swing.JTextField

JTextField.AccessibleJTextField

Nested classes/interfaces inherited from class javax.swing.text.JTextComponent

JTextComponent.AccessibleJTextComponent, 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.BltBufferStrategy, Component.FlipBufferStrategy

Field Summary

static int
COMMIT
The possible focusLostBehavior options *
static int
COMMIT_OR_REVERT
static int
PERSIST
static int
REVERT

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

TOOL_TIP_TEXT_KEY, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW, accessibleContext, listenerList, ui

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

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

Constructor Summary

JFormattedTextField()
Creates a JFormattedTextField with no formatter factory.
JFormattedTextField(Object value)
Creates a JFormattedTextField with the specified value.
JFormattedTextField(Format format)
Creates a JFormattedTextField that can handle the specified Format.
JFormattedTextField(JFormattedTextField.AbstractFormatter formatter)
Creates a JFormattedTextField with the specified formatter.
JFormattedTextField(JFormattedTextField.AbstractFormatterFactory factory)
Creates a JFormattedTextField with the specified formatter factory.
JFormattedTextField(JFormattedTextField.AbstractFormatterFactory factory, Object value)
Creates a JFormattedTextField with the specified formatter factory and initial value.

Method Summary

void
commitEdit()
Forces the current value from the editor to be set as the current value.
Action[]
getActions()
Gets the command list supplied by the UI augmented by the specific Actions for JFormattedTextField.
int
getFocusLostBehavior()
Returns the behaviour of this JFormattedTextField upon losing focus.
JFormattedTextField.AbstractFormatter
getFormatter()
Returns the current formatter used for this JFormattedTextField.
JFormattedTextField.AbstractFormatterFactory
getFormatterFactory()
Returns the factory currently used to generate formatters for this JFormattedTextField.
String
getUIClassID()
Returns the class ID for the UI.
Object
getValue()
Returns the last valid value.
protected void
invalidEdit()
This method is used to provide feedback to the user when an invalid value is input during editing.
boolean
isEditValid()
Returns true if the current value being edited is valid.
protected void
processFocusEvent(FocusEvent evt)
Processes focus events.
void
setDocument(Document newDocument)
Associates this JFormattedTextField with a Document and propagates a PropertyChange event to each listener.
void
setFocusLostBehavior(int behavior)
Sets the behaviour of this JFormattedTextField upon losing focus.
protected void
setFormatter(JFormattedTextField.AbstractFormatter formatter)
Sets the formatter for this JFormattedTextField.
void
setFormatterFactory(JFormattedTextField.AbstractFormatterFactory factory)
Sets the factory from which this JFormattedTextField should obtain its formatters.
void
setValue(Object newValue)
Sets the value that will be formatted and displayed.

Methods inherited from class javax.swing.JTextField

addActionListener, configurePropertiesFromAction, createActionPropertyChangeListener, createDefaultModel, fireActionPerformed, getAccessibleContext, getAction, getActionListeners, getActions, getColumnWidth, getColumns, getHorizontalAlignment, getHorizontalVisibility, getPreferredSize, getScrollOffset, getUIClassID, isValidateRoot, postActionEvent, removeActionListener, scrollRectToVisible, setAction, setActionCommand, setColumns, setDocument, setFont, setHorizontalAlignment, setScrollOffset

Methods inherited from class javax.swing.text.JTextComponent

addCaretListener, addInputMethodListener, addKeymap, copy, cut, fireCaretUpdate, getAccessibleContext, getActions, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getFocusAccelerator, getHighlighter, getInputMethodListeners, getKeymap, getKeymap, getMargin, getNavigationFilter, getPreferredScrollableViewportSize, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getText, getToolTipText, getUI, getUIClassID, isEditable, loadKeymap, modelToView, moveCaretPosition, paramString, paste, read, removeCaretListener, removeInputMethodListener, removeKeymap, replaceSelection, select, selectAll, setCaret, setCaretColor, setCaretPosition, setDisabledTextColor, setDocument, 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, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, extends EventListener> T[] getListeners, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, 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, setEnabled, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setNextFocusableComponent, setOpaque, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI

Methods inherited from class java.awt.Container

add, add, add, add, add, addContainerListener, addImpl, addNotify, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, extends EventListener> T[] getListeners, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponentZOrder, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, paramString, preferredSize, print, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, setLayout, transferFocusDownCycle, update, validate, validateTree

Methods inherited from class java.awt.Component

action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, enableInputMethods, extends EventListener> T[] getListeners, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getAlignmentX, getAlignmentY, getBackground, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeys, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMaximumSize, getMinimumSize, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusCycleRoot, isFocusOwner, isFocusTraversable, isFocusable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, minimumSize, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paint, paintAll, paramString, postEvent, preferredSize, prepareImage, prepareImage, print, printAll, processComponentEvent, processEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusTraversalKeys, setFocusTraversalKeysEnabled, setFocusable, setFont, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle, update, validate

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

COMMIT

public static final int COMMIT
The possible focusLostBehavior options *
Field Value:
0

COMMIT_OR_REVERT

public static final int COMMIT_OR_REVERT
Field Value:
1

PERSIST

public static final int PERSIST
Field Value:
3

REVERT

public static final int REVERT
Field Value:
2

Constructor Details

JFormattedTextField

public JFormattedTextField()
Creates a JFormattedTextField with no formatter factory. setValue or setFormatterFactory will properly configure this text field to edit a particular type of value.

JFormattedTextField

public JFormattedTextField(Object value)
Creates a JFormattedTextField with the specified value. This creates a formatter and formatterFactory that are appropriate for the value.
Parameters:
value - the initial value for this JFormattedTextField

JFormattedTextField

public JFormattedTextField(Format format)
Creates a JFormattedTextField that can handle the specified Format. An appopriate AbstractFormatter and AbstractFormatterFactory will be created for the specified Format.
Parameters:
format - the Format that this JFormattedTextField should be able to handle

JFormattedTextField

public JFormattedTextField(JFormattedTextField.AbstractFormatter formatter)
Creates a JFormattedTextField with the specified formatter. This will create a DefaultFormatterFactory with this formatter as the default formatter.
Parameters:
formatter - the formatter to use for this JFormattedTextField

JFormattedTextField

public JFormattedTextField(JFormattedTextField.AbstractFormatterFactory factory)
Creates a JFormattedTextField with the specified formatter factory.
Parameters:
factory - the formatter factory to use for this JFormattedTextField

JFormattedTextField

public JFormattedTextField(JFormattedTextField.AbstractFormatterFactory factory,
                           Object value)
Creates a JFormattedTextField with the specified formatter factory and initial value.
Parameters:
factory - the initial formatter factory for this JFormattedTextField
value - the initial value for the text field

Method Details

commitEdit

public void commitEdit()
            throws ParseException
Forces the current value from the editor to be set as the current value. If there is no current formatted this has no effect.
Throws:
ParseException - if the formatter cannot format the current value

getActions

public Action[] getActions()
Gets the command list supplied by the UI augmented by the specific Actions for JFormattedTextField.
Overrides:
getActions in interface JTextField
Returns:
an array of Actions that this text field supports

getFocusLostBehavior

public int getFocusLostBehavior()
Returns the behaviour of this JFormattedTextField upon losing focus. This is one of COMMIT, COMMIT_OR_REVERT, PERSIST, or REVERT.
Returns:
the behaviour upon losing focus

getFormatter

public JFormattedTextField.AbstractFormatter getFormatter()
Returns the current formatter used for this JFormattedTextField.
Returns:
the current formatter used for this JFormattedTextField

getFormatterFactory

public JFormattedTextField.AbstractFormatterFactory getFormatterFactory()
Returns the factory currently used to generate formatters for this JFormattedTextField.
Returns:
the factory currently used to generate formatters

getUIClassID

public String getUIClassID()
Returns the class ID for the UI.
Overrides:
getUIClassID in interface JTextField
Returns:
"TextFieldUI";

getValue

public Object getValue()
Returns the last valid value. This may not be the value currently shown in the text field depending on whether or not the formatter commits on valid edits and allows invalid input to be temporarily displayed.
Returns:
the last committed valid value

invalidEdit

protected void invalidEdit()
This method is used to provide feedback to the user when an invalid value is input during editing.

isEditValid

public boolean isEditValid()
Returns true if the current value being edited is valid. This property is managed by the current formatted.
Returns:
true if the value being edited is valid.

processFocusEvent

protected void processFocusEvent(FocusEvent evt)
Processes focus events. This is overridden because we may want to change the formatted depending on whether or not this field has focus.
Overrides:
processFocusEvent in interface Component
Parameters:
evt - the FocusEvent

setDocument

public void setDocument(Document newDocument)
Associates this JFormattedTextField with a Document and propagates a PropertyChange event to each listener.
Overrides:
setDocument in interface JTextField
Parameters:
newDocument - the Document to associate with this text field

setFocusLostBehavior

public void setFocusLostBehavior(int behavior)
Sets the behaviour of this JFormattedTextField upon losing focus. This must be COMMIT, COMMIT_OR_REVERT, PERSIST, or REVERT or an IllegalArgumentException will be thrown.
Parameters:
behavior -
Throws:
IllegalArgumentException - if behaviour is not one of the above

setFormatter

protected void setFormatter(JFormattedTextField.AbstractFormatter formatter)
Sets the formatter for this JFormattedTextField. Normally the formatter factory will take care of this, or calls to setValue will also make sure that the formatter is set appropriately.
Parameters:
formatter - the AbstractFormatter to use for formatting the value for this JFormattedTextField

setFormatterFactory

public void setFormatterFactory(JFormattedTextField.AbstractFormatterFactory factory)
Sets the factory from which this JFormattedTextField should obtain its formatters.
Parameters:
factory - the AbstractFormatterFactory that will be used to generate formatters for this JFormattedTextField

setValue

public void setValue(Object newValue)
Sets the value that will be formatted and displayed.
Parameters:
newValue - the value to be formatted and displayed

JFormattedTextField.java -- Copyright (C) 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.