所有类


javax.swing.text
类 DefaultFormatter

java.lang.Object
  继承者 javax.swing.JFormattedTextField.AbstractFormatter
      继承者 javax.swing.text.DefaultFormatter
所有已实现的接口:
Serializable, Cloneable
直接已知子类:
InternationalFormatter, MaskFormatter

public class DefaultFormatter
   
   
   
   
extends JFormattedTextField.AbstractFormatter
implements Cloneable, Serializable

DefaultFormatter 格式化任意对象。格式化是通过调用 toString 方法完成的。为将值转换回 String,类必须提供一个采用 String 参数的构造方法。如果未发现采用 String 的单一参数构造方法,则返回值将为传入 stringToValue 的 String。

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

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

从以下版本开始:
1.4
另请参见:
JFormattedTextField.AbstractFormatter

构造方法摘要
DefaultFormatter()
          创建 DefaultFormatter。
 
方法摘要
 Objectclone()
          创建此 DefaultFormatter 的副本。
 booleangetAllowsInvalid()
          返回编辑的值是否在一段时间内允许为无效。
 booleangetCommitsOnValidEdit()
          返回何时将编辑内容发布回 JFormattedTextField
protected  DocumentFiltergetDocumentFilter()
          返回用于限制放置到 JFormattedTextField 中的字符的 DocumentFilter
protected  NavigationFiltergetNavigationFilter()
          返回用于限制光标放置位置的 NavigationFilter
 booleangetOverwriteMode()
          返回插入字符时的行为。
 Class<?>getValueClass()
          返回用于创建新 Objects 的类。
 voidinstall(JFormattedTextField ftf)
          将 DefaultFormatter 安装到特定的 JFormattedTextField
 voidsetAllowsInvalid(boolean allowsInvalid)
          设置编辑的值在一段时间内是否允许为无效(也就是说,stringToValue 是否抛出 ParseException)。
 voidsetCommitsOnValidEdit(boolean commit)
          设置何时将编辑内容发布回 JFormattedTextField
 voidsetOverwriteMode(boolean overwriteMode)
          配置插入字符时的行为。
 voidsetValueClass(Class<?> valueClass)
          设置用于创建新 Objects 的类。
 ObjectstringToValue(String string)
          通过使用带 String 参数的构造方法将传入的 String 转换为 getValueClass 的一个实例。
 StringvalueToString(Object value)
          使用 toString 方法将传入的 Object 转换为 String。
 
从类 javax.swing.JFormattedTextField.AbstractFormatter 继承的方法
getActions, getFormattedTextField, invalidEdit, setEditValid, uninstall
 
从类 java.lang.Object 继承的方法
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

DefaultFormatter

public DefaultFormatter()
创建 DefaultFormatter。

方法详细信息

install

public void install(JFormattedTextField ftf)
DefaultFormatter 安装到特定的 JFormattedTextField。这会调用 valueToString,以便将 JFormattedTextField 的当前值转换为 String。此方法稍后将会把 getActions 返回的 ActiongetDocumentFilter 返回的 DocumentFiltergetNavigationFilter 返回的 NavigationFilter 安装到 JFormattedTextField 上。

如果子类希望在 JFormattedTextField 上安装其他侦听器,则通常只需要重写此方法。

如果在将当前值转换为 String 时存在 ParseException,则这会将文本设置为空 String,并将 JFormattedTextField 标记为正处在无效状态。

尽管这是一个公共方法,但通常仅供 JFormattedTextField 的子类使用。当值发生更改,或内部状态发生更改时,JFormattedTextField 将在适当的时候调用此方法。

覆盖:
JFormattedTextField.AbstractFormatter 中的 install
参数:
ftf - 要格式化为的 JFormattedTextField,可以为 null,指示未从当前的 JFormattedTextField 安装。

setCommitsOnValidEdit

public void setCommitsOnValidEdit(boolean commit)
设置何时将编辑内容发布回 JFormattedTextField。如果为 true,commitEdit 在每次有效编辑(编辑文本的任何时间)后调用。另一方面,如果为 false,则 DefaultFormatter 不会将编辑内容发布回 JFormattedTextField。因此,JFormattedTextField 值的惟一一次改变发生的时间是,在 JFormattedTextField 上调用 commitEdit 时,通常为按下回车或当焦点离开 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