Package Summary Overview Summary

### class:JFormattedTextField.AbstractFormatter [NONE]
- All Implemented Interfaces: Serializable Direct Known Subclasses: DefaultFormatter Enclosing class: JFormattedTextField
      public abstract static class JFormattedTextField.AbstractFormatter
      extends Object
      implements Serializable
Instances of `AbstractFormatter` are used by `JFormattedTextField` to handle the conversion both from an Object to a String, and back from a String to an Object. `AbstractFormatter`s can also enforce editing policies, or navigation policies, or manipulate the `JFormattedTextField` in any way it sees fit to enforce the desired policy. An `AbstractFormatter` can only be active in one `JFormattedTextField` at a time. `JFormattedTextField` invokes `install` when it is ready to use it followed by `uninstall` when done. Subclasses that wish to install additional state should override `install` and message super appropriately. Subclasses must override the conversion methods `stringToValue` and `valueToString`. Optionally they can override `getActions`, `getNavigationFilter` and `getDocumentFilter` to restrict the `JFormattedTextField` in a particular way. Subclasses that allow the `JFormattedTextField` to be in a temporarily invalid state should invoke `setEditValid` at the appropriate times. Since: 1.4

### constructor:AbstractFormatter() [NONE]
- #### AbstractFormatter
      public AbstractFormatter()

### method:install(javax.swing.JFormattedTextField) [NONE]
- #### install
      public void install(JFormattedTextField ftf)
Installs the `AbstractFormatter` 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. You will only need to invoke this yourself if you are subclassing `JFormattedTextField` and installing/uninstalling `AbstractFormatter` at a different time than `JFormattedTextField` does. Parameters: `ftf` - JFormattedTextField to format for, may be null indicating uninstall from current JFormattedTextField.

### method:uninstall() [NONE]
- #### uninstall
      public void uninstall()
Uninstalls any state the `AbstractFormatter` may have installed on the `JFormattedTextField`. This resets the `DocumentFilter`, `NavigationFilter` and additional `Action`s installed on the `JFormattedTextField`.

### method:stringToValue(java.lang.String) [NONE]
- #### stringToValue
      public abstract Object stringToValue(String text)
                                    throws ParseException
Parses `text` returning an arbitrary Object. Some formatters may return null. Parameters: `text` - String to convert Returns: Object representation of text Throws: `ParseException` - if there is an error in the conversion

### method:valueToString(java.lang.Object) [NONE]
- #### valueToString
      public abstract String valueToString(Object value)
                                    throws ParseException
Returns the string value to display for `value`. Parameters: `value` - Value to convert Returns: String representation of value Throws: `ParseException` - if there is an error in the conversion

### method:getFormattedTextField() [NONE]
- #### getFormattedTextField
      protected JFormattedTextField getFormattedTextField()
Returns the current `JFormattedTextField` the `AbstractFormatter` is installed on. Returns: JFormattedTextField formatting for.

### method:invalidEdit() [NONE]
- #### invalidEdit
      protected void invalidEdit()
This should be invoked when the user types an invalid character. This forwards the call to the current JFormattedTextField.

### method:setEditValid(boolean) [NONE]
- #### setEditValid
      protected void setEditValid(boolean valid)
Invoke this to update the `editValid` property of the `JFormattedTextField`. If you an enforce a policy such that the `JFormattedTextField` is always in a valid state, you will never need to invoke this. Parameters: `valid` - Valid state of the JFormattedTextField

### method:getActions() [NONE]
- #### getActions
      protected Action[] getActions()
Subclass and override if you wish to provide a custom set of `Action`s. `install` will install these on the `JFormattedTextField`'s `ActionMap`. Returns: Array of Actions to install on JFormattedTextField

### method:getDocumentFilter() [NONE]
- #### getDocumentFilter
      protected DocumentFilter getDocumentFilter()
Subclass and override if you wish to provide a `DocumentFilter` to restrict what can be input. `install` will install the returned value onto the `JFormattedTextField`. Returns: DocumentFilter to restrict edits

### method:getNavigationFilter() [NONE]
- #### getNavigationFilter
      protected NavigationFilter getNavigationFilter()
Subclass and override if you wish to provide a filter to restrict where the user can navigate to. `install` will install the returned value onto the `JFormattedTextField`. Returns: NavigationFilter to restrict navigation

### method:clone() [NONE]
- #### clone
      protected Object clone()
                      throws CloneNotSupportedException
Clones the `AbstractFormatter`. The returned instance is not associated with a `JFormattedTextField`. Overrides: `clone` in class `Object` Returns: Copy of the AbstractFormatter Throws: `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. See Also: `Cloneable`