所有类


javax.swing
类 JFormattedTextField.AbstractFormatter

java.lang.Object
  继承者 javax.swing.JFormattedTextField.AbstractFormatter
所有已实现的接口:
Serializable
直接已知子类:
DefaultFormatter
正在封闭类:
JFormattedTextField

public abstract static class JFormattedTextField.AbstractFormatter
   
   
   
   
   
extends Object
implements Serializable

JFormattedTextField 所使用的 AbstractFormatter 实例,用于处理从 Object 到 String 和从 String 到 Object 的转换。AbstractFormatter 还可强制执行编辑策略,或者指导策略的执行,或者以任何适合于强制执行所需策略的方式操作 JFormattedTextField

AbstractFormatter 一次只能在一个 JFormattedTextField 中处于激活状态。JFormattedTextField 准备好使用 install 时即调用它,完成后调用 uninstall。希望安装其他状态的子类应该重写 install 并适当地通知超类。

子类必须重写转换方法 stringToValuevalueToString。或者,子类可以重写 getActionsgetNavigationFiltergetDocumentFilter,以便以特定的方式限制 JFormattedTextField

允许 JFormattedTextField 处于临时无效状态的子类应该在恰当的时间调用 setEditValid


构造方法摘要
JFormattedTextField.AbstractFormatter()
           
 
方法摘要
protected  Objectclone()
          克隆 AbstractFormatter
protected  Action[]getActions()
          如果想提供自定义的 Action 集合,则应进行子类化和重写。
protected  DocumentFiltergetDocumentFilter()
          如果想要提供某个 DocumentFilter 以限制输入内容,则应进行子类化和重写。
protected  JFormattedTextFieldgetFormattedTextField()
          返回 AbstractFormatter 所安装到的当前 JFormattedTextField
protected  NavigationFiltergetNavigationFilter()
          如果想要提供过滤器以限制用户可导航的位置,则应进行子类化和重写。
 voidinstall(JFormattedTextField ftf)
          将 AbstractFormatter 安装到特定的 JFormattedTextField
protected  voidinvalidEdit()
          用户键入无效字符时调用此方法。
protected  voidsetEditValid(boolean valid)
          调用此方法以更新 JFormattedTextFieldeditValid 属性。
abstract  ObjectstringToValue(String text)
          分析 text,返回任意 Object。
 voiduninstall()
          卸载 AbstractFormatter 可能已在 JFormattedTextField 上安装的所有状态。
abstract  StringvalueToString(Object value)
          返回为 value 显示的 string 值。
 
从类 java.lang.Object 继承的方法
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

JFormattedTextField.AbstractFormatter

public JFormattedTextField.AbstractFormatter()
方法详细信息

install

public void install(JFormattedTextField ftf)
AbstractFormatter 安装到特定的 JFormattedTextField。这会调用 valueToStringJFormattedTextField 的当前值转换为 String。然后将从 getActions 返回的 Action、从 getDocumentFilter 返回的 DocumentFilter 和从 getNavigationFilter 返回的 NavigationFilter 安装到 JFormattedTextField

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

如果将当前值转换为 String 的过程中出现 ParseException,则会将文本设置为空 String,并标记 JFormattedTextField 为处于无效状态。

不过这是一个公共方法,通常它只对 JFormattedTextField 的子类有用。当值更改,或者 JFormattedTextField 的内部状态更改时,JFormattedTextField 才在适当的时间调用此方法。如果要创建 JFormattedTextField 的子类并且在不同于 JFormattedTextField 操作的时间安装/卸载 AbstractFormatter,则只需自己调用此方法。

参数:
ftf - 用于格式化的 JFormattedTextField,可以为 null,指示从当前 JFormattedTextField 进行卸载。

uninstall

public void uninstall()
卸载 AbstractFormatter 可能已在 JFormattedTextField 上安装的所有状态。这会重置在 JFormattedTextField 上安装的 DocumentFilterNavigationFilter 和其他 Action


stringToValue

public abstract Object stringToValue(String text)
                              throws ParseException
分析 text,返回任意 Object。某些 formatter 可能返回 null。

参数:
text - 要转换的 String
返回:
文本的 Object 表示形式
抛出:
ParseException - 如果转换过程中出现错误

valueToString

public abstract String valueToString(Object value)
                              throws ParseException
返回为 value 显示的 string 值。

参数:
value - 要转换的 Value
返回:
值的 String 表示形式
抛出:
ParseException - 如果转换过程中出现错误

getFormattedTextField

protected JFormattedTextField getFormattedTextField()
返回 AbstractFormatter 所安装到的当前 JFormattedTextField

返回:
用于格式化的 JFormattedTextField。

invalidEdit

protected void invalidEdit()
用户键入无效字符时调用此方法。这会将调用转发到当前的 JFormattedTextField。


setEditValid

protected void setEditValid(boolean valid)
调用此方法以更新 JFormattedTextFieldeditValid 属性。如果强制实施某个策略而使 JFormattedTextField 始终处于有效状态,则不再需要调用此方法。

参数:
valid - JFormattedTextField 的有效状态