FileDocCategorySizeDatePackage
DefaultFormatterFactory.javaAPI DocJava SE 6 API11449Tue Jun 10 00:26:56 BST 2008javax.swing.text

DefaultFormatterFactory

public class DefaultFormatterFactory extends JFormattedTextField$AbstractFormatterFactory implements Serializable
An implementation of JFormattedTextField.AbstractFormatterFactory. DefaultFormatterFactory allows specifying a number of different JFormattedTextField.AbstractFormatters that are to be used. The most important one is the default one (setDefaultFormatter). The default formatter will be used if a more specific formatter could not be found. The following process is used to determine the appropriate formatter to use.
  1. Is the passed in value null? Use the null formatter.
  2. Does the JFormattedTextField have focus? Use the edit formatter.
  3. Otherwise, use the display formatter.
  4. If a non-null AbstractFormatter has not been found, use the default formatter.

The following code shows how to configure a JFormattedTextField with two JFormattedTextField.AbstractFormatters, one for display and one for editing.

JFormattedTextField.AbstractFormatter editFormatter = ...;
JFormattedTextField.AbstractFormatter displayFormatter = ...;
DefaultFormatterFactory factory = new DefaultFormatterFactory(
displayFormatter, displayFormatter, editFormatter);
JFormattedTextField tf = new JFormattedTextField(factory);

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 JavaBeansTM has been added to the java.beans package. Please see {@link java.beans.XMLEncoder}.

see
javax.swing.JFormattedTextField
version
1.10 04/07/06
since
1.4

Fields Summary
private JFormattedTextField$AbstractFormatter
defaultFormat
Default AbstractFormatter to use if a more specific one has not been specified.
private JFormattedTextField$AbstractFormatter
displayFormat
JFormattedTextField.AbstractFormatter to use for display.
private JFormattedTextField$AbstractFormatter
editFormat
JFormattedTextField.AbstractFormatter to use for editing.
private JFormattedTextField$AbstractFormatter
nullFormat
JFormattedTextField.AbstractFormatter to use if the value is null.
Constructors Summary
public DefaultFormatterFactory()

    
public DefaultFormatterFactory(JFormattedTextField$AbstractFormatter defaultFormat)
Creates a DefaultFormatterFactory with the specified JFormattedTextField.AbstractFormatter.

param
defaultFormat JFormattedTextField.AbstractFormatter to be used if a more specific JFormattedTextField.AbstractFormatter can not be found.

        this(defaultFormat, null);
    
public DefaultFormatterFactory(JFormattedTextField$AbstractFormatter defaultFormat, JFormattedTextField$AbstractFormatter displayFormat)
Creates a DefaultFormatterFactory with the specified JFormattedTextField.AbstractFormatters.

param
defaultFormat JFormattedTextField.AbstractFormatter to be used if a more specific JFormattedTextField.AbstractFormatter can not be found.
param
displayFormat JFormattedTextField.AbstractFormatter to be used when the JFormattedTextField does not have focus.

        this(defaultFormat, displayFormat, null);
    
public DefaultFormatterFactory(JFormattedTextField$AbstractFormatter defaultFormat, JFormattedTextField$AbstractFormatter displayFormat, JFormattedTextField$AbstractFormatter editFormat)
Creates a DefaultFormatterFactory with the specified JFormattedTextField.AbstractFormatters.

param
defaultFormat JFormattedTextField.AbstractFormatter to be used if a more specific JFormattedTextField.AbstractFormatter can not be found.
param
displayFormat JFormattedTextField.AbstractFormatter to be used when the JFormattedTextField does not have focus.
param
editFormat JFormattedTextField.AbstractFormatter to be used when the JFormattedTextField has focus.

        this(defaultFormat, displayFormat, editFormat, null);
    
public DefaultFormatterFactory(JFormattedTextField$AbstractFormatter defaultFormat, JFormattedTextField$AbstractFormatter displayFormat, JFormattedTextField$AbstractFormatter editFormat, JFormattedTextField$AbstractFormatter nullFormat)
Creates a DefaultFormatterFactory with the specified JFormattedTextField.AbstractFormatters.

param
defaultFormat JFormattedTextField.AbstractFormatter to be used if a more specific JFormattedTextField.AbstractFormatter can not be found.
param
displayFormat JFormattedTextField.AbstractFormatter to be used when the JFormattedTextField does not have focus.
param
editFormat JFormattedTextField.AbstractFormatter to be used when the JFormattedTextField has focus.
param
nullFormat JFormattedTextField.AbstractFormatter to be used when the JFormattedTextField has a null value.

        this.defaultFormat = defaultFormat;
        this.displayFormat = displayFormat;
        this.editFormat = editFormat;
        this.nullFormat = nullFormat;
    
Methods Summary
public javax.swing.JFormattedTextField$AbstractFormattergetDefaultFormatter()
Returns the JFormattedTextField.AbstractFormatter to use as a last resort, eg in case a display, edit or null JFormattedTextField.AbstractFormatter has not been specified.

return
JFormattedTextField.AbstractFormatter used if a more specific one is not specified.

        return defaultFormat;
    
public javax.swing.JFormattedTextField$AbstractFormattergetDisplayFormatter()
Returns the JFormattedTextField.AbstractFormatter to use if the JFormattedTextField is not being edited and either the value is not-null, or the value is null and a null formatter has has not been specified.

return
JFormattedTextField.AbstractFormatter to use when the JFormattedTextField does not have focus

        return displayFormat;
    
public javax.swing.JFormattedTextField$AbstractFormattergetEditFormatter()
Returns the JFormattedTextField.AbstractFormatter to use if the JFormattedTextField is being edited and either the value is not-null, or the value is null and a null formatter has has not been specified.

return
JFormattedTextField.AbstractFormatter to use when the component has focus

        return editFormat;
    
public javax.swing.JFormattedTextField$AbstractFormattergetFormatter(javax.swing.JFormattedTextField source)
Returns either the default formatter, display formatter, editor formatter or null formatter based on the state of the JFormattedTextField.

param
source JFormattedTextField requesting JFormattedTextField.AbstractFormatter
return
JFormattedTextField.AbstractFormatter to handle formatting duties.

        JFormattedTextField.AbstractFormatter format = null;

        if (source == null) {
            return null;
        }
        Object value = source.getValue();

        if (value == null) {
            format = getNullFormatter();
        }
        if (format == null) {
            if (source.hasFocus()) {
                format = getEditFormatter();
            }
            else {
                format = getDisplayFormatter();
            }
            if (format == null) {
                format = getDefaultFormatter();
            }
        }
        return format;
    
public javax.swing.JFormattedTextField$AbstractFormattergetNullFormatter()
Returns the formatter to use if the value is null.

return
JFormattedTextField.AbstractFormatter to use when the value is null

        return nullFormat;
    
public voidsetDefaultFormatter(javax.swing.JFormattedTextField$AbstractFormatter atf)
Sets the JFormattedTextField.AbstractFormatter to use as a last resort, eg in case a display, edit or null JFormattedTextField.AbstractFormatter has not been specified.

param
atf JFormattedTextField.AbstractFormatter used if a more specific is not specified

        defaultFormat = atf;
    
public voidsetDisplayFormatter(javax.swing.JFormattedTextField$AbstractFormatter atf)
Sets the JFormattedTextField.AbstractFormatter to use if the JFormattedTextField is not being edited and either the value is not-null, or the value is null and a null formatter has has not been specified.

param
atf JFormattedTextField.AbstractFormatter to use when the JFormattedTextField does not have focus

        displayFormat = atf;
    
public voidsetEditFormatter(javax.swing.JFormattedTextField$AbstractFormatter atf)
Sets the JFormattedTextField.AbstractFormatter to use if the JFormattedTextField is being edited and either the value is not-null, or the value is null and a null formatter has has not been specified.

param
atf JFormattedTextField.AbstractFormatter to use when the component has focus

        editFormat = atf;
    
public voidsetNullFormatter(javax.swing.JFormattedTextField$AbstractFormatter atf)
Sets the formatter to use if the value of the JFormattedTextField is null.

param
atf JFormattedTextField.AbstractFormatter to use when the value of the JFormattedTextField is null.

        nullFormat = atf;