Module  java.desktop
软件包  javax.swing

Class JFormattedTextField.AbstractFormatter

  • All Implemented Interfaces:
    Serializable
    已知直接子类:
    DefaultFormatter
    Enclosing class:
    JFormattedTextField


    public abstract static class JFormattedTextField.AbstractFormatter
    extends Object
    implements Serializable
    AbstractFormatter实例由JFormattedTextField用于处理从对象到字符串以及从字符串返回到对象的转换。 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转换为字符串。 那么这将安装Action从s getActions ,该DocumentFilter从返回getDocumentFilterNavigationFilter从返回getNavigationFilterJFormattedTextField

        子类通常只需要覆盖这个,如果他们希望在JFormattedTextField上安装其他监听JFormattedTextField

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

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

        参数
        ftf - JFormattedTextField格式化,可能为空,表示从当前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 s的子类和覆盖。 install将安装在JFormattedTextFieldActionMap
        结果
        要在JFormattedTextField上安装的操作数组
      • getDocumentFilter

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

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

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