|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjavax.swing.JFormattedTextField.AbstractFormatter
javax.swing.text.DefaultFormatter
javax.swing.text.InternationalFormatter
public class InternationalFormatter
InternationalFormatter 扩展 DefaultFormatter,使用 java.text.Format 的实例处理往返于 String 的转换。
如果 getAllowsInvalid() 为 false,这将要求 Format 在每次编辑时格式化当前文本。
可以通过 setMinimum 和 setMaximum 方法指定最小值和最大值。为使此值生效,必须比较 stringToValue 返回的值和通过 Comparable 接口得到的最小值/最大值。
配置 Format 和 InternationalFormatter 时一定要仔细,因为有可能造成某些值无法输入的情形。假定日期格式 'M/d/yy'(一种由 setAllowsInvalid(false) 决定总是有效的 InternationalFormatter)处于改写模式 (setOverwriteMode(true)) 且日期为 7/1/99。在此情况下,用户将不能输入两位数月份或某月的两位数日期。要避免此现象,该格式应该为 'MM/dd/yy'。
如果 InternationalFormatter 配置为只允许有效值 (setAllowsInvalid(false)),则每次有效编辑都会导致 JFormattedTextField 的文本根据 Format 全部重新设置。光标位置也将随着对结果 String 的字面值字符的添加/删除而调整。
InternationalFormatter 的 stringToValue 行为与 DefaultTextFormatter 稍有不同,它可以执行以下操作:
setFormat 指定的 Format 上调用 parseObject
setValueClass),则会调用超类实现,以便将 parseObject 返回的值转换为适当的类。
ParseException,并且该值不在最小值/最大值之间,则抛出 ParseException。
InternationalFormatter 以此方式实现 stringToValue,所以可以指定一个 Format 可能返回的替代 Class。
警告:此类的已序列化对象与以后的 Swing 版本不兼容。当前序列化支持适用于短期存储或运行相同 Swing 版本的应用程序之间的 RMI。从 1.4 版本开始,已在 java.beans 包中添加了支持所有 JavaBeansTM 长期存储的功能。请参见 XMLEncoder。
Format,
Comparable| 构造方法摘要 | |
|---|---|
InternationalFormatter()
创建一个不带指定 Format 的 InternationalFormatter。 |
|
InternationalFormatter(Format format)
创建一个具有指定 Format 实例的 InternationalFormatter。 |
|
| 方法摘要 | |
|---|---|
Object |
clone()
创建该 DefaultFormatter 的一个副本。 |
protected Action[] |
getActions()
如果 getSupportsIncrement 返回 true,则这将返回两个适合增加/减少该值的 Action。 |
Format.Field[] |
getFields(int offset)
返回与 offset 处的文本相关的 Format.Field 常量。 |
Format |
getFormat()
返回指示可以编辑和显示的合法值的格式。 |
Comparable |
getMaximum()
返回最大允许值。 |
Comparable |
getMinimum()
返回最小允许值。 |
void |
install(JFormattedTextField ftf)
将 DefaultFormatter 安装到特定的 JFormattedTextField 上。 |
void |
setFormat(Format format)
设置指示可以编辑和显示的合法值的格式。 |
void |
setMaximum(Comparable max)
设置最大允许值。 |
void |
setMinimum(Comparable minimum)
设置最小允许值。 |
Object |
stringToValue(String text)
返回 String text 的 Object 表示形式。 |
String |
valueToString(Object value)
返回 Object value 的 String 表示形式。 |
| 从类 javax.swing.JFormattedTextField.AbstractFormatter 继承的方法 |
|---|
getFormattedTextField, invalidEdit, setEditValid, uninstall |
| 从类 java.lang.Object 继承的方法 |
|---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 构造方法详细信息 |
|---|
public InternationalFormatter()
Format 的 InternationalFormatter。
public InternationalFormatter(Format format)
Format 实例的 InternationalFormatter。
format - 用于往返于 String 转换的 Format 实例| 方法详细信息 |
|---|
public void setFormat(Format format)
format - 用于往返 String 转换的 Format 实例public Format getFormat()
public void setMinimum(Comparable minimum)
valueClass,且 minimum 为非 null,则 valueClass 将被设置为 minimum 类的值类。
minimum - 可以输入的最小合法值DefaultFormatter.setValueClass(java.lang.Class>)public Comparable getMinimum()
public void setMaximum(Comparable max)
valueClass,且 max 为非 null,则将 valueClass 设置为 max 类的值。
max - 可以输入的最大合法值DefaultFormatter.setValueClass(java.lang.Class>)public Comparable getMaximum()
public void install(JFormattedTextField ftf)
DefaultFormatter 安装到特定的 JFormattedTextField 上。这将调用 valueToString,将 JFormattedTextField 中的当前值转换为 String。此方法稍后将会将 getActions 返回的 Action、getDocumentFilter 返回的 DocumentFilter 和 getNavigationFilter 返回的 NavigationFilter 安装到 JFormattedTextField 上。
如果子类希望在 JFormattedTextField 上安装其他侦听器,则通常只需要重写此方法。
如果在将当前值转换为 String 时存在 ParseException,则这会将文本设置为空 String,并将 JFormattedTextField 标记为正处在无效状态。
尽管这是一个公共方法,但通常仅供 JFormattedTextField 的子类使用。当值发生更改,或内部状态发生更改时,JFormattedTextField 将在适当的时候调用此方法。
DefaultFormatter 中的 installftf - 要格式化的 JFormattedTextField,可能为 null,指示未从当前的 JFormattedTextField 安装。
public String valueToString(Object value)
throws ParseException
value 的 String 表示形式。此方法会在当前 Format 上调用 format。
DefaultFormatter 中的 valueToStringvalue - 要转换的值
ParseException - 如果在转换时发生错误
public Object stringToValue(String text)
throws ParseException
String text 的 Object 表示形式。
DefaultFormatter 中的 stringToValuetext - 要转换的 String
Object 表示形式
ParseException - 如果转换时发生错误public Format.Field[] getFields(int offset)
offset 处的文本相关的 Format.Field 常量。如果 offset 不是当前文本中的有效位置,这将返回一个空数组。
offset - 要检查文本的偏移量
public Object clone()
throws CloneNotSupportedException
DefaultFormatter 中的 cloneCloneNotSupportedException - 如果对象的类不支持 Cloneable 接口,则重写 clone 方法的子类也会抛出此异常,以指示无法复制某个实例。Cloneableprotected Action[] getActions()
getSupportsIncrement 返回 true,则这将返回两个适合增加/减少该值的 Action。
JFormattedTextField.AbstractFormatter 中的 getActions
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。