所有类


javax.swing.text
类 InternationalFormatter

java.lang.Object
  继承者 javax.swing.JFormattedTextField.AbstractFormatter
      继承者 javax.swing.text.DefaultFormatter
          继承者 javax.swing.text.InternationalFormatter
所有已实现的接口:
Serializable, Cloneable
直接已知子类:
DateFormatter, NumberFormatter

public class InternationalFormatter
   
   
   
   
extends DefaultFormatter

InternationalFormatter 扩展 DefaultFormatter,使用 java.text.Format 的实例处理往返于 String 的转换。

如果 getAllowsInvalid() 为 false,这将要求 Format 在每次编辑时格式化当前文本。

可以通过 setMinimumsetMaximum 方法指定最小值和最大值。为使此值生效,必须比较 stringToValue 返回的值和通过 Comparable 接口得到的最小值/最大值。

配置 FormatInternationalFormatter 时一定要仔细,因为有可能造成某些值无法输入的情形。假定日期格式 'M/d/yy'(一种由 setAllowsInvalid(false) 决定总是有效的 InternationalFormatter)处于改写模式 (setOverwriteMode(true)) 且日期为 7/1/99。在此情况下,用户将不能输入两位数月份或某月的两位数日期。要避免此现象,该格式应该为 'MM/dd/yy'。

如果 InternationalFormatter 配置为只允许有效值 (setAllowsInvalid(false)),则每次有效编辑都会导致 JFormattedTextField 的文本根据 Format 全部重新设置。光标位置也将随着对结果 String 的字面值字符的添加/删除而调整。

InternationalFormatterstringToValue 行为与 DefaultTextFormatter 稍有不同,它可以执行以下操作:

  1. setFormat 指定的 Format 上调用 parseObject
  2. 如果针对一些值设置了某个 Class (setValueClass),则会调用超类实现,以便将 parseObject 返回的值转换为适当的类。
  3. 如果尚未抛出 ParseException,并且该值不在最小值/最大值之间,则抛出 ParseException
  4. 返回该值。
InternationalFormatter 以此方式实现 stringToValue,所以可以指定一个 Format 可能返回的替代 Class。

警告:此类的已序列化对象与以后的 Swing 版本不兼容。当前序列化支持适用于短期存储或运行相同 Swing 版本的应用程序之间的 RMI。从 1.4 版本开始,已在 java.beans 包中添加了支持所有 JavaBeansTM 长期存储的功能。请参见 XMLEncoder

从以下版本开始:
1.4
另请参见:
Format, Comparable

构造方法摘要
InternationalFormatter()
          创建一个不带指定 FormatInternationalFormatter
InternationalFormatter(Format format)
          创建一个具有指定 Format 实例的 InternationalFormatter
 
方法摘要
 Objectclone()
          创建该 DefaultFormatter 的一个副本。
protected  Action[]getActions()
          如果 getSupportsIncrement 返回 true,则这将返回两个适合增加/减少该值的 Action。
 Format.Field[]getFields(int offset)
          返回与 offset 处的文本相关的 Format.Field 常量。
 FormatgetFormat()
          返回指示可以编辑和显示的合法值的格式。
 ComparablegetMaximum()
          返回最大允许值。
 ComparablegetMinimum()
          返回最小允许值。
 voidinstall(JFormattedTextField ftf)
          将 DefaultFormatter 安装到特定的 JFormattedTextField 上。
 voidsetFormat(Format format)
          设置指示可以编辑和显示的合法值的格式。
 voidsetMaximum(Comparable max)
          设置最大允许值。
 voidsetMinimum(Comparable minimum)
          设置最小允许值。
 ObjectstringToValue(String text)
          返回 StringtextObject 表示形式。
 StringvalueToString(Object value)
          返回 Object value 的 String 表示形式。
 
从类 javax.swing.text.DefaultFormatter 继承的方法
getAllowsInvalid, getCommitsOnValidEdit, getDocumentFilter, getNavigationFilter, getOverwriteMode, getValueClass, setAllowsInvalid, setCommitsOnValidEdit, setOverwriteMode, setValueClass
 
从类 javax.swing.JFormattedTextField.AbstractFormatter 继承的方法
getFormattedTextField, invalidEdit, setEditValid, uninstall
 
从类 java.lang.Object 继承的方法
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

InternationalFormatter

public InternationalFormatter()
创建一个不带指定 FormatInternationalFormatter


InternationalFormatter

public InternationalFormatter(Format format)
创建一个具有指定 Format 实例的 InternationalFormatter

参数:
format - 用于往返于 String 转换的 Format 实例
方法详细信息

setFormat

public void setFormat(Format format)
设置指示可以编辑和显示的合法值的格式。

参数:
format - 用于往返 String 转换的 Format 实例

getFormat

public Format getFormat()
返回指示可以编辑和显示的合法值的格式。

返回:
用于往返 String 转换的 Format 实例

setMinimum

public void setMinimum(Comparable minimum)
设置最小允许值。如果尚未指定 valueClass,且 minimum 为非 null,则 valueClass 将被设置为 minimum 类的值类。

参数:
minimum - 可以输入的最小合法值
另请参见:
DefaultFormatter.setValueClass(java.lang.Class)

getMinimum

public Comparable getMinimum()
返回最小允许值。

返回:
可以输入的最小合法值

setMaximum

public void setMaximum(Comparable max)
设置最大允许值。如果尚未指定 valueClass,且 max 为非 null,则将 valueClass 设置为 max 类的值。

参数:
max - 可以输入的最大合法值
另请参见:
DefaultFormatter.setValueClass(java.lang.Class)

getMaximum

public Comparable getMaximum()
返回最大允许值。

返回:
可以输入的最大合法值