java.lang.Object javax.swing.JFormattedTextField.AbstractFormatter javax.swing.text.DefaultFormatter
public class DefaultFormatter
DefaultFormatter
格式化任意对象。格式化是通过调用 toString
方法完成的。为将值转换回 String,类必须提供一个采用 String 参数的构造方法。如果未发现采用 String 的单一参数构造方法,则返回值将为传入 stringToValue
的 String。
DefaultFormatter
的实例不能在 JFormattedTextField
的多个实例中使用。要获得已配置好的 DefaultFormatter
的副本,请使用 clone
方法。
警告:此类的已序列化对象与以后的 Swing 版本不兼容。当前序列化支持适用于短期存储或运行相同 Swing 版本的应用程序之间的 RMI。从 1.4 版本开始,已在 java.beans
包中添加了支持所有 JavaBeansTM 长期存储的功能。请参见 XMLEncoder
。
JFormattedTextField.AbstractFormatter
构造方法摘要 | |
---|---|
DefaultFormatter() 创建 DefaultFormatter。 |
方法摘要 | |
---|---|
Object |
clone() 创建此 DefaultFormatter 的副本。 |
boolean |
getAllowsInvalid() 返回编辑的值是否在一段时间内允许为无效。 |
boolean |
getCommitsOnValidEdit() 返回何时将编辑内容发布回 JFormattedTextField 。 |
protected DocumentFilter |
getDocumentFilter() 返回用于限制放置到 JFormattedTextField 中的字符的 DocumentFilter 。 |
protected NavigationFilter |
getNavigationFilter() 返回用于限制光标放置位置的 NavigationFilter 。 |
boolean |
getOverwriteMode() 返回插入字符时的行为。 |
Class<?> |
getValueClass() 返回用于创建新 Objects 的类。 |
void |
install(JFormattedTextField ftf) 将 DefaultFormatter 安装到特定的 JFormattedTextField 。 |
void |
setAllowsInvalid(boolean allowsInvalid) 设置编辑的值在一段时间内是否允许为无效(也就是说, stringToValue 是否抛出 ParseException )。 |
void |
setCommitsOnValidEdit(boolean commit) 设置何时将编辑内容发布回 JFormattedTextField 。 |
void |
setOverwriteMode(boolean overwriteMode) 配置插入字符时的行为。 |
void |
setValueClass(Class<?> valueClass) 设置用于创建新 Objects 的类。 |
Object |
stringToValue(String string) 通过使用带 String 参数的构造方法将传入的 String 转换为 getValueClass 的一个实例。 |
String |
valueToString(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 |
构造方法详细信息 |
---|
public DefaultFormatter()
方法详细信息 |
---|
public void install(JFormattedTextField ftf)
DefaultFormatter
安装到特定的
JFormattedTextField
。这会调用
valueToString
,以便将
JFormattedTextField
的当前值转换为 String。此方法稍后将会把
getActions
返回的
Action
、
getDocumentFilter
返回的
DocumentFilter
和
getNavigationFilter
返回的
NavigationFilter
安装到
JFormattedTextField
上。
如果子类希望在 JFormattedTextField
上安装其他侦听器,则通常只需要重写此方法。
如果在将当前值转换为 String 时存在 ParseException
,则这会将文本设置为空 String,并将 JFormattedTextField
标记为正处在无效状态。
尽管这是一个公共方法,但通常仅供 JFormattedTextField
的子类使用。当值发生更改,或内部状态发生更改时,JFormattedTextField
将在适当的时候调用此方法。
ftf
- 要格式化为的 JFormattedTextField,可以为 null,指示未从当前的 JFormattedTextField 安装。
public void setCommitsOnValidEdit(boolean commit)
JFormattedTextField
。如果为 true,
commitEdit
在每次有效编辑(编辑文本的任何时间)后调用。另一方面,如果为 false,则
DefaultFormatter
不会将编辑内容发布回
JFormattedTextField
。因此,
JFormattedTextField
值的惟一一次改变发生的时间是,在
JFormattedTextField
上调用
commitEdit
时,通常为按下回车或当焦点离开
JFormattedTextField
时。
commit
- 用于指示何时将编辑内容提交回 JTextComponent
public boolean getCommitsOnValidEdit()
JFormattedTextField
。
public void setOverwriteMode(boolean overwriteMode)
overwriteMode
为 true (默认值),新字符将改写模型中现有的字符。
overwriteMode
- 指示使用改写或替代模式
public boolean getOverwriteMode()
public void setAllowsInvalid(boolean allowsInvalid)
stringToValue
是否抛出
ParseException
)。允许用户临时输入一个无效值会很方便。
allowsInvalid
- 用于指示编辑的值是否必须始终为有效
public boolean getAllowsInvalid()
public void setValueClass(Class<?> valueClass)
valueClass
- 用于构造从 stringToValue 中返回的值的类
public Class<?> getValueClass()
public Object stringToValue(String string) throws ParseException
getValueClass
的一个实例。如果
getValueClass
返回 null,将使用
JFormattedTextField
中当前值的类。如果它为 null,将返回一个 String。如果构造方法抛出异常,则会抛出
ParseException
。如果没有只带一个参数的 String 构造方法,则返回
string
。
string
- 要转换的字符串
ParseException
- 如果转换过程中出现错误
public String valueToString(Object value) throws ParseException
toString
方法将传入的 Object 转换为 String。
value
- 要转换的值
ParseException
- 如果在转换时发生错误
protected DocumentFilter getDocumentFilter()
JFormattedTextField
中的字符的
DocumentFilter
。
protected NavigationFilter getNavigationFilter()
NavigationFilter
。
public Object clone() throws CloneNotSupportedException
CloneNotSupportedException
- 如果对象的类不支持
Cloneable
接口,则重写
clone
方法的子类也会抛出此异常,以指示无法复制某个实例。
Cloneable