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
方法来进行格式化。为了将值转换回字符串,您的类必须提供一个接受字符串参数的构造函数。如果找不到接受字符串的单参数构造函数,则返回的值将是传递给 stringToValue
的字符串。
DefaultFormatter
的实例不能在多个 JFormattedTextField
实例中使用。要获取已配置的 DefaultFormatter
的副本,请使用 clone
方法。
警告: 该类的序列化对象将不兼容未来的 Swing 版本。当前的序列化支持适用于短期存储或在运行相同 Swing 版本的应用程序之间的 RMI。从 1.4 版开始,已将对所有 JavaBeans 的长期存储支持添加到 java.beans
包中。请参阅 XMLEncoder
。
- 自版本:
- 1.4
- 参见:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionclone()
创建 DefaultFormatter 的副本。boolean
返回正在编辑的值是否允许在一段时间内无效。boolean
返回编辑何时发布回到JFormattedTextField
。protected DocumentFilter
返回用于限制可以输入到JFormattedTextField
中的字符的DocumentFilter
。protected NavigationFilter
返回用于限制光标放置位置的NavigationFilter
。boolean
返回插入字符时的行为。Class
<?> 返回用于创建新对象的类。void
将DefaultFormatter
安装到特定的JFormattedTextField
上。void
setAllowsInvalid
(boolean allowsInvalid) 设置正在编辑的值是否允许在一段时间内无效(即,stringToValue
抛出ParseException
)。void
setCommitsOnValidEdit
(boolean commit) 设置编辑何时发布回到JFormattedTextField
。void
setOverwriteMode
(boolean overwriteMode) 配置插入字符时的行为。void
setValueClass
(Class<?> valueClass) 设置用于创建新对象的类。stringToValue
(String string) 通过接受的字符串通过接受字符串参数的构造函数将其转换为getValueClass
的实例。valueToString
(Object value) 通过接受的对象通过toString
方法将其转换为字符串。Methods declared in class javax.swing.JFormattedTextField.AbstractFormatter
getActions, getFormattedTextField, invalidEdit, setEditValid, uninstall
-
Constructor Details
-
DefaultFormatter
public DefaultFormatter()创建一个 DefaultFormatter。
-
-
Method Details
-
install
将DefaultFormatter
安装到特定的JFormattedTextField
上。这将调用valueToString
来将当前值从JFormattedTextField
转换为字符串。然后将从getActions
获取的Action
、从getDocumentFilter
返回的DocumentFilter
和从getNavigationFilter
返回的NavigationFilter
安装到JFormattedTextField
上。子类通常只需要在需要在
JFormattedTextField
上安装额外监听器时重写此方法。如果将当前值转换为字符串时出现
ParseException
,则将文本设置为空字符串,并将JFormattedTextField
标记为无效状态。虽然这是一个公共方法,但通常只对
JFormattedTextField
的子类有用。在值更改或内部状态更改时,JFormattedTextField
将在适当的时候调用此方法。- 覆盖:
-
install
在类JFormattedTextField.AbstractFormatter
中 - 参数:
-
ftf
- 要格式化的 JFormattedTextField,可以为 null 表示从当前 JFormattedTextField 中卸载。
-
setCommitsOnValidEdit
public void setCommitsOnValidEdit(boolean commit) 设置编辑何时发布回到JFormattedTextField
。如果为 true,则在每次有效编辑后(任何时候编辑文本时)都会调用commitEdit
。另一方面,如果为 false,则DefaultFormatter
不会将编辑发布回到JFormattedTextField
。因此,只有在调用JFormattedTextField
上的commitEdit
时,JFormattedTextField
的值才会更改,通常在按下 Enter 键或焦点离开JFormattedTextField
时调用commitEdit
。- 参数:
-
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
设置用于创建新对象的类。如果传入的类没有接受字符串参数的单参数构造函数,则将使用字符串值。- 参数:
-
valueClass
- 用于从 stringToValue 构造返回值的类
-
getValueClass
返回用于创建新对象的类。- 返回:
- 用于从 stringToValue 构造返回值的类
-
stringToValue
通过接受的字符串通过接受字符串参数的构造函数将其转换为getValueClass
的实例。如果getValueClass
返回 null,则将使用JFormattedTextField
中当前值的类。如果这是 null,则将返回一个字符串。如果构造函数抛出异常,则将抛出ParseException
。如果没有单参数字符串构造函数,则将返回字符串。- 指定者:
-
stringToValue
在类JFormattedTextField.AbstractFormatter
中 - 参数:
-
string
- 要转换的字符串 - 返回:
- 文本的对象表示
- 抛出:
-
ParseException
- 如果转换中出现错误
-
valueToString
通过接受的对象通过toString
方法将其转换为字符串。- 指定者:
-
valueToString
在类JFormattedTextField.AbstractFormatter
中 - 参数:
-
value
- 要转换的值 - 返回:
- 值的字符串表示
- 抛出:
-
ParseException
- 如果转换中出现错误
-
getDocumentFilter
返回用于限制可以输入到JFormattedTextField
中的字符的DocumentFilter
。- 覆盖:
-
getDocumentFilter
在类JFormattedTextField.AbstractFormatter
中 - 返回:
- 用于限制编辑的 DocumentFilter
-
clone
创建 DefaultFormatter 的副本。- 覆盖:
-
clone
在类JFormattedTextField.AbstractFormatter
- 返回:
- DefaultFormatter的副本
- 抛出:
-
CloneNotSupportedException
- 如果对象的类不支持Cloneable
接口。覆盖clone
方法的子类也可以抛出此异常,以指示实例无法被克隆。 - 参见:
-