java.lang.Object
javax.swing.JFormattedTextField.AbstractFormatter
- 所有已实现的接口:
-
Serializable
- 直接已知子类:
-
DefaultFormatter
- 封装类:
-
JFormattedTextField
public abstract static class JFormattedTextField.AbstractFormatter extends Object implements Serializable
AbstractFormatter的实例被JFormattedTextField用于处理从对象到字符串的转换,以及从字符串到对象的转换。 AbstractFormatter还可以强制执行编辑策略、导航策略,或以任何方式操作JFormattedTextField,以实施所需的策略。
AbstractFormatter一次只能在一个JFormattedTextField中处于活动状态。当JFormattedTextField准备好使用它时,会调用install,然后在完成后调用uninstall。希望安装附加状态的子类应该重写install并适当地调用super。
子类必须重写转换方法stringToValue和valueToString。可选地,它们可以重写getActions、getNavigationFilter和getDocumentFilter以限制JFormattedTextField的特定方式。
允许JFormattedTextField处于临时无效状态的子类应在适当时刻调用setEditValid。
- 自版本:
- 1.4
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected Objectclone()克隆AbstractFormatter。protected Action[]如果要提供自定义的Action集,请创建子类并重写此方法。protected DocumentFilter如果要提供DocumentFilter以限制输入,请创建子类并重写此方法。protected JFormattedTextField返回当前安装了AbstractFormatter的JFormattedTextField。protected NavigationFilter如果要提供一个过滤器以限制用户可以导航到的位置,请创建子类并重写此方法。void将AbstractFormatter安装到特定的JFormattedTextField上。protected void当用户键入无效字符时应调用此方法。protected voidsetEditValid(boolean valid) 调用此方法以更新JFormattedTextField的editValid属性。abstract ObjectstringToValue(String text) 解析text并返回任意对象。void卸载AbstractFormatter可能已安装在JFormattedTextField上的任何状态。abstract StringvalueToString(Object value) 返回value的显示字符串值。
-
Constructor Details
-
AbstractFormatter
protected AbstractFormatter()子类调用的构造函数。
-
-
Method Details
-
install
将AbstractFormatter安装到特定的JFormattedTextField上。这将调用valueToString将当前值从JFormattedTextField转换为字符串。然后,将从getActions返回的Action、从getDocumentFilter返回的DocumentFilter以及从getNavigationFilter返回的NavigationFilter安装到JFormattedTextField上。子类通常只需要在需要在
JFormattedTextField上安装附加侦听器时重写此方法。如果在将当前值转换为字符串时出现
ParseException,则将文本设置为空字符串,并将JFormattedTextField标记为处于无效状态。虽然这是一个公共方法,但通常只对
JFormattedTextField的子类有用。在值更改或内部状态更改时,JFormattedTextField会在适当的时候调用此方法。只有在您正在对JFormattedTextField进行子类化并在不同时间安装/卸载AbstractFormatter时才需要自行调用此方法。- 参数:
-
ftf- 要为其格式化的JFormattedTextField,可以为null表示从当前JFormattedTextField卸载。
-
uninstall
public void uninstall()卸载AbstractFormatter可能已安装在JFormattedTextField上的任何状态。这将重置JFormattedTextField上安装的DocumentFilter、NavigationFilter和其他Action。 -
stringToValue
解析text并返回任意对象。某些格式化程序可能返回null。- 参数:
-
text- 要转换的字符串 - 返回:
- 文本的对象表示
- 抛出:
-
ParseException- 如果转换中出现错误
-
valueToString
返回value的显示字符串值。- 参数:
-
value- 要转换的值 - 返回:
- 值的字符串表示
- 抛出:
-
ParseException- 如果转换中出现错误
-
getFormattedTextField
返回当前安装了AbstractFormatter的JFormattedTextField。- 返回:
- JFormattedTextField的格式化对象。
-
invalidEdit
protected void invalidEdit()当用户键入无效字符时应调用此方法。这会将调用转发给当前的JFormattedTextField。 -
setEditValid
protected void setEditValid(boolean valid) 调用此方法以更新JFormattedTextField的editValid属性。如果您强制执行策略,使JFormattedTextField始终处于有效状态,则永远不需要调用此方法。- 参数:
-
valid- JFormattedTextField的有效状态
-
getActions
如果要提供自定义的Action集,请创建子类并重写此方法。install将这些安装到JFormattedTextField的ActionMap中。- 返回:
- 要安装在JFormattedTextField上的Action数组
-
getDocumentFilter
如果要提供DocumentFilter以限制输入,请创建子类并重写此方法。install将返回的值安装到JFormattedTextField上。- 实现要求:
-
默认实现返回
null。 - 返回:
- 用于限制编辑的DocumentFilter
-
clone
克隆AbstractFormatter。返回的实例与JFormattedTextField无关联。- 覆盖:
-
clone在类Object中 - 返回:
- AbstractFormatter的副本
- 抛出:
-
CloneNotSupportedException- 如果对象的类不支持Cloneable接口。重写clone方法的子类也可以抛出此异常,以指示无法克隆实例。 - 参见:
-