javax.swing

Class JFormattedTextField.AbstractFormatter

Enclosing Class:
JFormattedTextField
Implemented Interfaces:
Serializable
Known Direct Subclasses:
DefaultFormatter

public static abstract class JFormattedTextField.AbstractFormatter
extends Object
implements Serializable

An abstract base implementation for a formatter that can be used by a JTextField. A formatter can display a specific type of object and may provide a way to edit this value.
See Also:
Serialized Form

Constructor Summary

AbstractFormatter()
The basic constructor.

Method Summary

protected Object
clone()
Clones the AbstractFormatter and removes the association to any particular JFormattedTextField.
protected Action[]
getActions()
Returns a custom set of Actions that this formatter supports.
protected DocumentFilter
getDocumentFilter()
Gets the DocumentFilter for this formatter.
protected JFormattedTextField
getFormattedTextField()
Returns the JFormattedTextField on which this formatter is currently installed.
protected NavigationFilter
getNavigationFilter()
Gets the NavigationFilter for this formatter.
void
install(JFormattedTextField textField)
Installs this formatter on the specified JFormattedTextField.
protected void
invalidEdit()
Invoke this method when invalid values are entered.
protected void
setEditValid(boolean valid)
This method updates the editValid property of JFormattedTextField.
abstract Object
stringToValue(String text)
Parses text to return a corresponding Object.
void
uninstall()
Clears the state installed on the JFormattedTextField by the formatter.
abstract String
valueToString(Object value)
Returns a String to be displayed, based on the Object value.

Methods inherited from class java.lang.Object

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

Constructor Details

AbstractFormatter

public AbstractFormatter()
The basic constructor. Object is special, because it has no superclass, so there is no call to super().

Method Details

clone

protected Object clone()
            throws CloneNotSupportedException
Clones the AbstractFormatter and removes the association to any particular JFormattedTextField.
Overrides:
clone in interface Object
Returns:
a clone of this formatter with no association to any particular JFormattedTextField
Throws:
CloneNotSupportedException - if the Object's class doesn't support the Cloneable interface

getActions

protected Action[] getActions()
Returns a custom set of Actions that this formatter supports. Should be subclassed by formatters that have a custom set of Actions.
Returns:
null. Should be subclassed by formatters that want to install custom Actions on the JFormattedTextField.

getDocumentFilter

protected DocumentFilter getDocumentFilter()
Gets the DocumentFilter for this formatter. Should be subclassed by formatters wishing to install a filter that oversees Document mutations.
Returns:
null. Should be subclassed by formatters that want to restrict Document mutations.

getFormattedTextField

protected JFormattedTextField getFormattedTextField()
Returns the JFormattedTextField on which this formatter is currently installed.
Returns:
the JFormattedTextField on which this formatter is currently installed

getNavigationFilter

protected NavigationFilter getNavigationFilter()
Gets the NavigationFilter for this formatter. Should be subclassed by formatters (such as DefaultFormatter) that wish to restrict where the cursor can be placed within the text field.
Returns:
null. Subclassed by formatters that want to restrict cursor location within the JFormattedTextField.

install

public void install(JFormattedTextField textField)
Installs this formatter on the specified JFormattedTextField. This converts the current value to a displayable String and displays it, and installs formatter specific Actions from getActions. It also installs a DocumentFilter and NavigationFilter on the JFormattedTextField.

If there is a ParseException this sets the text to an empty String and marks the text field in an invalid state.

Parameters:
textField - the JFormattedTextField on which to install this formatter

invalidEdit

protected void invalidEdit()
Invoke this method when invalid values are entered. This forwards the call to the JFormattedTextField.

setEditValid

protected void setEditValid(boolean valid)
This method updates the editValid property of JFormattedTextField.
Parameters:
valid - the new state for the editValid property

stringToValue

public abstract Object stringToValue(String text)
            throws ParseException
Parses text to return a corresponding Object.
Parameters:
text - the String to parse
Returns:
an Object that text represented
Throws:
ParseException - if there is an error in the conversion

uninstall

public void uninstall()
Clears the state installed on the JFormattedTextField by the formatter. This resets the DocumentFilter, NavigationFilter, and any additional Actions (returned by getActions()).

valueToString

public abstract String valueToString(Object value)
            throws ParseException
Returns a String to be displayed, based on the Object value.
Parameters:
value - the Object from which to generate a String
Returns:
a String to be displayed
Throws:
ParseException - if there is an error in the conversion

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.