Module  java.desktop
软件包  javax.swing.text

Class DefaultFormatter

  • All Implemented Interfaces:
    SerializableCloneable
    已知直接子类:
    InternationalFormatterMaskFormatter


    public class DefaultFormatter
    extends JFormattedTextField.AbstractFormatter
    implements Cloneable, Serializable
    DefaultFormatter格式化任意对象。 格式化是通过调用toString方法完成的。 为了将值转换为String,您的类必须提供一个构造函数,它接受一个String参数。 如果没有找到接受String的单个参数构造函数,则返回的值将是传入stringToValue的String。

    DefaultFormatter实例不能在JFormattedTextField多个实例中JFormattedTextField 要获得已配置的DefaultFormatter的副本,请使用clone方法。

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

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

      • DefaultFormatter

        public DefaultFormatter​()
        创建一个DefaultFormatter。
    • 方法详细信息

      • install

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

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

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

        虽然这是一种公共方法,但这通常只适用于JFormattedTextField子类。 JFormattedTextField将在值更改或其内部状态更改的适当时候调用此方法。

        重写:
        installJFormattedTextField.AbstractFormatter
        参数
        ftf - JFormattedTextField格式化,可能为null表示从当前JFormattedTextField卸载。
      • setCommitsOnValidEdit

        public void setCommitsOnValidEdit​(boolean commit)
        编辑编辑时设置为JFormattedTextField 如果为真,则在每次有效的编辑之后调用commitEdit (任何时候编辑文本)。 另一方面,如果这是假的DefaultFormatter不发布编辑回JFormattedTextField 因此, JFormattedTextField的值将改变的唯一时间是在commitEdit调用JFormattedTextField ,通常在按下Enter或聚焦离开JFormattedTextField
        参数
        commit - 用于指示何时将编辑提交回JTextComponent
      • getCommitsOnValidEdit

        public boolean getCommitsOnValidEdit​()
        当编辑发布回 JFormattedTextField时返回。
        结果
        如果编辑在每次有效的编辑后都被提交,则为true
      • setOverwriteMode

        public void setOverwriteMode​(boolean overwriteMode)
        配置插入字符时的行为。 如果overwriteMode为true(默认值),新字符将覆盖模型中的现有字符。
        参数
        overwriteMode - 表示是否使用覆盖或重击模式
      • getOverwriteMode

        public boolean getOverwriteMode​()
        返回插入字符时的行为。
        结果
        如果新插入的字符覆盖现有字符,则为true
      • setAllowsInvalid

        public void setAllowsInvalid​(boolean allowsInvalid)
        设置所编辑的值是否允许在一段时间内无效(即stringToValue抛出一个ParseException )。 允许用户临时输入无效值通常是方便的。
        参数
        allowsInvalid - 用于指示编辑的值是否始终有效
      • getAllowsInvalid

        public boolean getAllowsInvalid​()
        返回正在编辑的值是否允许在一段时间内无效。
        结果
        如果编辑的值必须始终有效,则为false
      • setValueClass

        public void setValueClass​(Class<?> valueClass)
        设置用于创建新对象的类。 如果传入的类没有一个接受String的单个参数构造函数,那么将使用String值。
        参数
        valueClass - 用于从stringToValue构造返回值的类
      • getValueClass

        public Class<?> getValueClass​()
        返回用于创建新对象的类。
        结果
        用于从stringToValue构造返回值的类
      • stringToValue

        public Object stringToValue​(String string)
                             throws ParseException
        通过使用String参数的构造函数将String中的传递转换为getValueClass的实例。 如果getValueClass返回null,将使用JFormattedTextField中的当前值的类。 如果这是null,将返回一个String。 如果构造函数抛出异常,将抛出一个ParseException 如果没有单个参数String构造函数,将返回string
        Specified by:
        stringToValueJFormattedTextField.AbstractFormatter
        参数
        string - 要转换的字符串
        结果
        文本的对象表示
        异常
        ParseException - 转换中是否有错误