public class DefaultFormatter extends JFormattedTextField.AbstractFormatter implements Cloneable, Serializable
DefaultFormatter
formats arbitrary objects. Formatting is done
by invoking the toString
method. In order to convert the
value back to a String, your class must provide a constructor that
takes a String argument. If no single argument constructor that takes a
String is found, the returned value will be the String passed into
stringToValue
.
Instances of DefaultFormatter
can not be used in multiple
instances of JFormattedTextField
. To obtain a copy of
an already configured DefaultFormatter
, use the
clone
method.
Warning:
Serialized objects of this class will not be compatible with
future Swing releases. The current serialization support is
appropriate for short term storage or RMI between applications running
the same version of Swing. As of 1.4, support for long term storage
of all JavaBeans™
has been added to the java.beans
package.
Please see XMLEncoder
.
JFormattedTextField.AbstractFormatter
Constructor and Description |
---|
DefaultFormatter()
Creates a DefaultFormatter.
|
Modifier and Type | Method and Description |
---|---|
Object |
clone()
Creates a copy of the DefaultFormatter.
|
boolean |
getAllowsInvalid()
Returns whether or not the value being edited is allowed to be invalid
for a length of time.
|
boolean |
getCommitsOnValidEdit()
Returns when edits are published back to the
JFormattedTextField . |
protected DocumentFilter |
getDocumentFilter()
Returns the
DocumentFilter used to restrict the characters
that can be input into the JFormattedTextField . |
protected NavigationFilter |
getNavigationFilter()
Returns the
NavigationFilter used to restrict where the
cursor can be placed. |
boolean |
getOverwriteMode()
Returns the behavior when inserting characters.
|
Class<?> |
getValueClass()
Returns that class that is used to create new Objects.
|
void |
install(JFormattedTextField ftf)
Installs the
DefaultFormatter onto a particular
JFormattedTextField . |
void |
setAllowsInvalid(boolean allowsInvalid)
Sets whether or not the value being edited is allowed to be invalid
for a length of time (that is,
stringToValue throws
a ParseException ). |
void |
setCommitsOnValidEdit(boolean commit)
Sets when edits are published back to the
JFormattedTextField . |
void |
setOverwriteMode(boolean overwriteMode)
Configures the behavior when inserting characters.
|
void |
setValueClass(Class<?> valueClass)
Sets that class that is used to create new Objects.
|
Object |
stringToValue(String string)
Converts the passed in String into an instance of
getValueClass by way of the constructor that
takes a String argument. |
String |
valueToString(Object value)
Converts the passed in Object into a String by way of the
toString method. |
getActions, getFormattedTextField, invalidEdit, setEditValid, uninstall
public void install(JFormattedTextField ftf)
DefaultFormatter
onto a particular
JFormattedTextField
.
This will invoke valueToString
to convert the
current value from the JFormattedTextField
to
a String. This will then install the Action
s from
getActions
, the DocumentFilter
returned from getDocumentFilter
and the
NavigationFilter
returned from
getNavigationFilter
onto the
JFormattedTextField
.
Subclasses will typically only need to override this if they
wish to install additional listeners on the
JFormattedTextField
.
If there is a ParseException
in converting the
current value to a String, this will set the text to an empty
String, and mark the JFormattedTextField
as being
in an invalid state.
While this is a public method, this is typically only useful
for subclassers of JFormattedTextField
.
JFormattedTextField
will invoke this method at
the appropriate times when the value changes, or its internal
state changes.
install
in class JFormattedTextField.AbstractFormatter
ftf
- JFormattedTextField to format for, may be null indicating
uninstall from current JFormattedTextField.public void setCommitsOnValidEdit(boolean commit)
JFormattedTextField
. If true, commitEdit
is invoked after every valid edit (any time the text is edited). On
the other hand, if this is false than the DefaultFormatter
does not publish edits back to the JFormattedTextField
.
As such, the only time the value of the JFormattedTextField
will change is when commitEdit
is invoked on
JFormattedTextField
, typically when enter is pressed
or focus leaves the JFormattedTextField
.commit
- Used to indicate when edits are committed back to the
JTextComponentpublic boolean getCommitsOnValidEdit()
JFormattedTextField
.public void setOverwriteMode(boolean overwriteMode)
overwriteMode
is true (the default), new characters
overwrite existing characters in the model.overwriteMode
- Indicates if overwrite or overstrike mode is usedpublic boolean getOverwriteMode()
public void setAllowsInvalid(boolean allowsInvalid)
stringToValue
throws
a ParseException
).
It is often convenient to allow the user to temporarily input an
invalid value.allowsInvalid
- Used to indicate if the edited value must always
be validpublic boolean getAllowsInvalid()
public void setValueClass(Class<?> valueClass)
valueClass
- Class used to construct return value from
stringToValuepublic Class<?> getValueClass()
public Object stringToValue(String string) throws ParseException
getValueClass
by way of the constructor that
takes a String argument. If getValueClass
returns null, the Class of the current value in the
JFormattedTextField
will be used. If this is null, a
String will be returned. If the constructor throws an exception, a
ParseException
will be thrown. If there is no single
argument String constructor, string
will be returned.stringToValue
in class JFormattedTextField.AbstractFormatter
string
- String to convertParseException
- if there is an error in the conversionpublic String valueToString(Object value) throws ParseException
toString
method.valueToString
in class JFormattedTextField.AbstractFormatter
value
- Value to convertParseException
- if there is an error in the conversionprotected DocumentFilter getDocumentFilter()
DocumentFilter
used to restrict the characters
that can be input into the JFormattedTextField
.getDocumentFilter
in class JFormattedTextField.AbstractFormatter
protected NavigationFilter getNavigationFilter()
NavigationFilter
used to restrict where the
cursor can be placed.getNavigationFilter
in class JFormattedTextField.AbstractFormatter
public Object clone() throws CloneNotSupportedException
clone
in class JFormattedTextField.AbstractFormatter
CloneNotSupportedException
- if the object's class does not
support the Cloneable
interface. Subclasses
that override the clone
method can also
throw this exception to indicate that an instance cannot
be cloned.Cloneable
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2022, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.