模块 java.desktop

类 JFormattedTextField.AbstractFormatter

java.lang.Object
javax.swing.JFormattedTextField.AbstractFormatter
所有已实现的接口:
Serializable
已知子类:
DefaultFormatter
封闭类:
JFormattedTextField

public abstract static class JFormattedTextField.AbstractFormatter extends Object implements Serializable
AbstractFormatter 的实例被 JFormattedTextField 用来处理从对象到字符串的转换,以及从字符串到对象的转换。 AbstractFormatter s 还可以执行编辑策略或导航策略,或以任何它认为适合执行所需策略的方式操纵 JFormattedTextField

AbstractFormatter 一次只能在一个 JFormattedTextField 中激活。 JFormattedTextField 在准备好使用时调用 install,完成后调用 uninstall。希望安装附加状态的子类应该覆盖 install 并适当地向 super 发送消息。

子类必须覆盖转换方法 stringToValuevalueToString。他们可以选择覆盖 getActionsgetNavigationFiltergetDocumentFilter 以特定方式限制 JFormattedTextField

允许 JFormattedTextField 处于暂时无效状态的子类应在适当的时间调用 setEditValid

自从:
1.4
  • 构造方法详细信息

    • AbstractFormatter

      protected AbstractFormatter()
      子类调用的构造方法。
  • 方法详情

    • install

      public void install(JFormattedTextField  ftf)
      AbstractFormatter 安装到特定的 JFormattedTextField 上。这将调用 valueToString 将当前值从 JFormattedTextField 转换为字符串。然后,这将安装来自 getActionsAction 、从 getDocumentFilter 返回的 DocumentFilter 和从 getNavigationFilter 返回的 NavigationFilterJFormattedTextField

      如果子类希望在 JFormattedTextField 上安装额外的监听器,则通常只需要覆盖它。

      如果在将当前值转换为字符串时有ParseException,这会将文本设置为空字符串,并将JFormattedTextField标记为处于无效状态。

      虽然这是一个公共方法,但通常只对 JFormattedTextField 的子类有用。 JFormattedTextField 将在值更改或其内部状态更改时的适当时间调用此方法。如果您正在子类化 JFormattedTextField 并在与 JFormattedTextField 不同的时间安装/卸载 AbstractFormatter,则您只需要自己调用它。

      参数:
      ftf - 要为其格式化的 JFormattedTextField,可能为 null,表示从当前 JFormattedTextField 中卸载。
    • uninstall

      public void uninstall()
      卸载 AbstractFormatter 可能已安装在 JFormattedTextField 上的任何状态。这将重置安装在 JFormattedTextField 上的 DocumentFilterNavigationFilter 和其他 Action
    • stringToValue

      public abstract Object  stringToValue(String  text) throws ParseException
      解析 text 返回一个任意对象。一些格式化程序可能返回 null。
      参数:
      text - 要转换的字符串
      返回:
      文本的对象表示
      抛出:
      ParseException - 如果转换有误
    • valueToString

      public abstract String  valueToString(Object  value) throws ParseException
      返回要为 value 显示的字符串值。
      参数:
      value - 要转换的值
      返回:
      值的字符串表示
      抛出:
      ParseException - 如果转换有误
    • getFormattedTextField

      protected JFormattedTextField  getFormattedTextField()
      返回当前安装了 JFormattedTextField AbstractFormatter
      返回:
      JFormattedTextField 格式化。
    • invalidEdit

      protected void invalidEdit()
      这应该在用户键入无效字符时调用。这会将调用转发到当前的 JFormattedTextField。
    • setEditValid

      protected void setEditValid(boolean valid)
      调用它来更新 JFormattedTextFieldeditValid 属性。如果您实施一项策略,使 JFormattedTextField 始终处于有效状态,则您永远不需要调用它。
      参数:
      valid - JFormattedTextField 的有效状态
    • getActions

      protected Action [] getActions()
      如果您希望提供一组自定义的 Action ,则子类化并重写。 install 将在 JFormattedTextFieldActionMap 上安装这些。
      返回:
      要在 JFormattedTextField 上安装的操作数组
    • getDocumentFilter

      protected DocumentFilter  getDocumentFilter()
      如果您希望提供 DocumentFilter 来限制可以输入的内容,则子类化并重写。 install 会将返回值安装到 JFormattedTextField 上。
      实现要求:
      默认实现返回 null
      返回:
      DocumentFilter 限制编辑
    • getNavigationFilter

      protected NavigationFilter  getNavigationFilter()
      如果您希望提供一个过滤器来限制用户可以导航到的位置,则子类化并重写。 install 会将返回值安装到 JFormattedTextField 上。
      实现要求:
      默认实现返回 null
      返回:
      NavigationFilter 限制导航
    • clone

      protected Object  clone() throws CloneNotSupportedException
      克隆 AbstractFormatter 。返回的实例与 JFormattedTextField 没有关联。
      重写:
      clone 在类 Object
      返回:
      AbstractFormatter 的副本
      抛出:
      CloneNotSupportedException - 如果对象的类不支持 Cloneable 接口。覆盖 clone 方法的子类也可以抛出此异常以指示无法克隆实例。
      参见: