java.lang.Object
javax.swing.JFormattedTextField.AbstractFormatter
- 所有已实现的接口:
Serializable
- 已知子类:
DefaultFormatter
- 封闭类:
JFormattedTextField
public abstract static class JFormattedTextField.AbstractFormatter extends Object implements Serializable
AbstractFormatter 的实例被 JFormattedTextField 用来处理从对象到字符串的转换,以及从字符串到对象的转换。 AbstractFormatter s 还可以执行编辑策略或导航策略,或以任何它认为适合执行所需策略的方式操纵 JFormattedTextField。
AbstractFormatter 一次只能在一个 JFormattedTextField 中激活。 JFormattedTextField 在准备好使用时调用 install,完成后调用 uninstall。希望安装附加状态的子类应该覆盖 install 并适当地向 super 发送消息。
子类必须覆盖转换方法 stringToValue 和 valueToString。他们可以选择覆盖 getActions 、 getNavigationFilter 和 getDocumentFilter 以特定方式限制 JFormattedTextField 。
允许 JFormattedTextField 处于暂时无效状态的子类应在适当的时间调用 setEditValid。
- 自从:
- 1.4
-
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述protected Objectclone()克隆AbstractFormatter。protected Action[]如果您希望提供一组自定义的Action,则子类化并重写。protected DocumentFilter如果您希望提供DocumentFilter来限制可以输入的内容,则子类化并重写。protected JFormattedTextField返回当前安装了JFormattedTextFieldAbstractFormatter。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显示的字符串值。
-
构造方法详细信息
-
AbstractFormatter
protected AbstractFormatter()子类调用的构造方法。
-
-
方法详情
-
install
将AbstractFormatter安装到特定的JFormattedTextField上。这将调用valueToString将当前值从JFormattedTextField转换为字符串。然后,这将安装来自getActions的Action、从getDocumentFilter返回的DocumentFilter和从getNavigationFilter返回的NavigationFilter到JFormattedTextField。如果子类希望在
JFormattedTextField上安装额外的监听器,则通常只需要覆盖它。如果在将当前值转换为字符串时有
ParseException,这会将文本设置为空字符串,并将JFormattedTextField标记为处于无效状态。虽然这是一个公共方法,但通常只对
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
返回当前安装了JFormattedTextFieldAbstractFormatter。- 返回:
- JFormattedTextField 格式化。
-
invalidEdit
protected void invalidEdit()这应该在用户键入无效字符时调用。这会将调用转发到当前的 JFormattedTextField。 -
setEditValid
protected void setEditValid(boolean valid) 调用它来更新JFormattedTextField的editValid属性。如果您实施一项策略,使JFormattedTextField始终处于有效状态,则您永远不需要调用它。- 参数:
valid- JFormattedTextField 的有效状态
-
getActions
如果您希望提供一组自定义的Action,则子类化并重写。install将在JFormattedTextField的ActionMap上安装这些。- 返回:
- 要在 JFormattedTextField 上安装的操作数组
-
getDocumentFilter
如果您希望提供DocumentFilter来限制可以输入的内容,则子类化并重写。install会将返回值安装到JFormattedTextField上。- 实现要求:
-
默认实现返回
null。 - 返回:
- DocumentFilter 限制编辑
-
clone
克隆AbstractFormatter。返回的实例与JFormattedTextField没有关联。- 重写:
clone在类Object中- 返回:
- AbstractFormatter 的副本
- 抛出:
CloneNotSupportedException- 如果对象的类不支持Cloneable接口。覆盖clone方法的子类也可以抛出此异常以指示无法克隆实例。- 参见:
-