Module java.desktop
Package javax.swing.text

Class DefaultFormatterFactory

所有已实现的接口:
Serializable

public class DefaultFormatterFactory extends JFormattedTextField.AbstractFormatterFactory implements Serializable
JFormattedTextField.AbstractFormatterFactory的实现。 DefaultFormatterFactory允许指定要使用的多个不同的JFormattedTextField.AbstractFormatter。最重要的一个是默认的(setDefaultFormatter)。如果找不到更具体的格式化程序,则将使用默认格式化程序。 使用以下过程确定要使用的适当格式化程序。
  1. 传入值是否为null?使用null格式化程序。
  2. JFormattedTextField是否具有焦点?使用编辑格式化程序。
  3. 否则,使用显示格式化程序。
  4. 如果找不到非null的AbstractFormatter,则使用默认格式化程序。

以下代码显示了如何配置具有两个JFormattedTextField.AbstractFormatterJFormattedTextField,一个用于显示,一个用于编辑。

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

警告: 该类的序列化对象将不兼容未来的Swing版本。当前的序列化支持适用于短期存储或在运行相同Swing版本的应用程序之间的RMI。 从1.4开始,已将所有JavaBeans的长期存储支持添加到java.beans包中。 请参见XMLEncoder

自1.4版本起:
1.4
参见:
  • Constructor Details

    • DefaultFormatterFactory

      public DefaultFormatterFactory()
      构造一个DefaultFormatterFactory
    • DefaultFormatterFactory

      public DefaultFormatterFactory(JFormattedTextField.AbstractFormatter defaultFormat)
      使用指定的JFormattedTextField.AbstractFormatter创建一个DefaultFormatterFactory
      参数:
      defaultFormat - 如果找不到更具体的JFormattedTextField.AbstractFormatter,则要使用的JFormattedTextField.AbstractFormatter。
    • DefaultFormatterFactory

      public DefaultFormatterFactory(JFormattedTextField.AbstractFormatter defaultFormat, JFormattedTextField.AbstractFormatter displayFormat)
      使用指定的JFormattedTextField.AbstractFormatter创建一个DefaultFormatterFactory
      参数:
      defaultFormat - 如果找不到更具体的JFormattedTextField.AbstractFormatter,则要使用的JFormattedTextField.AbstractFormatter。
      displayFormat - 当JFormattedTextField没有焦点时要使用的JFormattedTextField.AbstractFormatter。
    • DefaultFormatterFactory

      public DefaultFormatterFactory(JFormattedTextField.AbstractFormatter defaultFormat, JFormattedTextField.AbstractFormatter displayFormat, JFormattedTextField.AbstractFormatter editFormat)
      使用指定的JFormattedTextField.AbstractFormatters创建一个DefaultFormatterFactory。
      参数:
      defaultFormat - 如果找不到更具体的JFormattedTextField.AbstractFormatter,则要使用的JFormattedTextField.AbstractFormatter。
      displayFormat - 当JFormattedTextField没有焦点时要使用的JFormattedTextField.AbstractFormatter。
      editFormat - 当JFormattedTextField具有焦点时要使用的JFormattedTextField.AbstractFormatter。
    • DefaultFormatterFactory

      使用指定的JFormattedTextField.AbstractFormatters创建一个DefaultFormatterFactory。
      参数:
      defaultFormat - 如果找不到更具体的JFormattedTextField.AbstractFormatter,则要使用的JFormattedTextField.AbstractFormatter。
      displayFormat - 当JFormattedTextField没有焦点时要使用的JFormattedTextField.AbstractFormatter。
      editFormat - 当JFormattedTextField具有焦点时要使用的JFormattedTextField.AbstractFormatter。
      nullFormat - 当JFormattedTextField的值为null时要使用的JFormattedTextField.AbstractFormatter。
  • Method Details

    • setDefaultFormatter

      public void setDefaultFormatter(JFormattedTextField.AbstractFormatter atf)
      设置要用作最后一招的JFormattedTextField.AbstractFormatter,例如在未指定显示、编辑或null的JFormattedTextField.AbstractFormatter的情况下。
      参数:
      atf - 如果未指定更具体的格式化程序,则使用的JFormattedTextField.AbstractFormatter
    • getDefaultFormatter

      public JFormattedTextField.AbstractFormatter getDefaultFormatter()
      返回要用作最后一招的JFormattedTextField.AbstractFormatter,例如在未指定显示、编辑或null的JFormattedTextField.AbstractFormatter的情况下。
      返回:
      如果未指定更具体的格式化程序,则使用的JFormattedTextField.AbstractFormatter。
    • setDisplayFormatter

      public void setDisplayFormatter(JFormattedTextField.AbstractFormatter atf)
      设置要在JFormattedTextField未被编辑且值不为null,或者值为null且未指定null格式化程序时使用的JFormattedTextField.AbstractFormatter
      参数:
      atf - 当JFormattedTextField没有焦点时使用的JFormattedTextField.AbstractFormatter
    • getDisplayFormatter

      public JFormattedTextField.AbstractFormatter getDisplayFormatter()
      返回要在JFormattedTextField未被编辑且值不为null,或者值为null且未指定null格式化程序时使用的JFormattedTextField.AbstractFormatter
      返回:
      当JFormattedTextField没有焦点时使用的JFormattedTextField.AbstractFormatter
    • setEditFormatter

      public void setEditFormatter(JFormattedTextField.AbstractFormatter atf)
      设置要在JFormattedTextField被编辑且值不为null,或者值为null且未指定null格式化程序时使用的JFormattedTextField.AbstractFormatter
      参数:
      atf - 当组件具有焦点时使用的JFormattedTextField.AbstractFormatter
    • getEditFormatter

      public JFormattedTextField.AbstractFormatter getEditFormatter()
      返回要在JFormattedTextField被编辑且值不为null,或者值为null且未指定null格式化程序时使用的JFormattedTextField.AbstractFormatter
      返回:
      当组件具有焦点时使用的JFormattedTextField.AbstractFormatter
    • setNullFormatter

      public void setNullFormatter(JFormattedTextField.AbstractFormatter atf)
      设置当JFormattedTextField的值为null时要使用的格式化程序。
      参数:
      atf - 当JFormattedTextField的值为null时使用的JFormattedTextField.AbstractFormatter。
    • getNullFormatter

      public JFormattedTextField.AbstractFormatter getNullFormatter()
      返回如果值为null时要使用的格式化程序。
      返回:
      当值为null时使用的JFormattedTextField.AbstractFormatter
    • getFormatter

      根据JFormattedTextField的状态返回默认格式化程序、显示格式化程序、编辑器格式化程序或null格式化程序。
      指定者:
      getFormatter 在类 JFormattedTextField.AbstractFormatterFactory
      参数:
      source - 请求JFormattedTextField.AbstractFormatter的JFormattedTextField
      返回:
      用于处理格式化任务的JFormattedTextField.AbstractFormatter。