模块  java.desktop
软件包  javax.swing

Class JFormattedTextField.AbstractFormatter

  • 实现的所有接口
    Serializable
    已知直接子类:
    DefaultFormatter
    Enclosing class:
    JFormattedTextField

    public abstract static class JFormattedTextField.AbstractFormatter
    extends Object
    implements Serializable
    AbstractFormatter使用JFormattedTextField来处理从Object到String的转换,以及从String转换为Object的转换。 AbstractFormatter也可以执行编辑策略或导航策略,或以其认为适合的任何方式操纵JFormattedTextField以强制执行所需的策略。

    AbstractFormatter一次只能在一个JFormattedTextField中激活。 JFormattedTextField调用install当它准备用它之后uninstall完成时。 希望安装附加状态的子类应该覆盖install并且消息超级适当。

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

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

    从以下版本开始:
    1.4
    另请参见:
    Serialized Form
    • 构造方法详细信息

      • AbstractFormatter

        public AbstractFormatter()
    • 方法详细信息

      • install

        public void install​(JFormattedTextField ftf)
        AbstractFormatter安装到特定的JFormattedTextField 这将调用valueToString将当前值从JFormattedTextField转换为String。 那么这将安装Action从s getActions ,该DocumentFilter从返回getDocumentFilterNavigationFilter从返回getNavigationFilterJFormattedTextField

        如果子类希望在JFormattedTextField上安装其他侦听器,则通常只需要覆盖它。

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

        虽然这是一种公共方法,但这通常仅适用于JFormattedTextField子类。 JFormattedTextField将在值更改或其内部状态更改的适当时间调用此方法。 您只需要将此调用自己,如果你正在继承JFormattedTextField和安装/卸载AbstractFormatter比不同的时间JFormattedTextField一样。

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

        public void uninstall()
        卸载AbstractFormatter可能安装在JFormattedTextField上的任何状态。 这将重置DocumentFilterNavigationFilter和附加Action安装在S JFormattedTextField
      • 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()
        返回当前 JFormattedTextFieldAbstractFormatter安装上。
        结果
        JFormattedTextField格式。
      • invalidEdit

        protected void invalidEdit()
        当用户键入无效字符时,应调用此方法。 这会将调用转发给当前的JFormattedTextField。
      • setEditValid

        protected void setEditValid​(boolean valid)
        调用此更新editValid的财产JFormattedTextField 如果您执行的策略使JFormattedTextField始终处于有效状态,则永远不需要调用此策略。
        参数
        valid - JFormattedTextField的有效状态
      • getActions

        protected Action[] getActions()
        如果您希望提供Action的自定义集,则子类和覆盖。 install将在JFormattedTextFieldActionMap上安装这些。
        结果
        要在JFormattedTextField上安装的操作数组
      • getDocumentFilter

        protected DocumentFilter getDocumentFilter()
        如果您希望提供DocumentFilter以限制可输入的内容,则进行子类和覆盖。 install将返回值安装到JFormattedTextField
        结果
        DocumentFilter限制编辑
      • getNavigationFilter

        protected NavigationFilter getNavigationFilter()
        如果您希望提供过滤器以限制用户可以导航到的位置,则子类和覆盖。 install将返回值安装到JFormattedTextField
        结果
        NavigationFilter限制导航