- 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
来处理转换为字符串,并从字符串的转换。如果
getAllowsInvalid()
为false,则会要求Format
格式化每次编辑时的当前文本。您可以通过
setMinimum
和setMaximum
方法指定最小值和最大值。 为了使其工作,从stringToValue
返回的值必须通过Comparable
接口与最小/最大值相比较。请注意如何配置
Format
和InternationalFormatter
,因为可能会创建无法输入某些值的情况。 考虑日期格式'M / d / yy',InternationalFormatter
始终有效(setAllowsInvalid(false)
),处于覆盖模式(setOverwriteMode(true)
)和日期7/1/99。 在这种情况下,用户将无法输入两位数月份或月份日期。 为避免这种情况,格式应为'MM / dd / yy'。如果
InternationalFormatter
被配置为只允许有效值(setAllowsInvalid(false)
),每一个有效的编辑将导致文本JFormattedTextField
是从完全复位Format
。 当结果字符串中添加/删除文字字符时,也会调整光标位置。InternationalFormatter
的行为stringToValue
比略有不同DefaultTextFormatter
,它执行以下操作:-
parseObject
被调用的Format
通过指定setFormat
- 如果已为值设置了类(
setValueClass
),则调用setValueClass
实现以将从parseObject
返回的值转换为适当的类。 - 如果没有抛出
ParseException
,并且该值超出最小值/最大值,则抛出ParseException
。 - 返回值。
InternationalFormatter
以这种方式实现stringToValue
,以便您可以指定可以返回的替代类Format
。警告:此类的序列化对象与以后的Swing版本不兼容。 当前的序列化支持适用于运行相同版本Swing的应用程序之间的短期存储或RMI。 从1.4开始,
java.beans
软件包中添加了对所有JavaBeansjava.beans
长期存储的支持。 请参阅XMLEncoder
。- 从以下版本开始:
- 1.4
- 另请参见:
-
Format
,Comparable
, Serialized Form
-
-
构造方法摘要
构造方法 构造器 描述 InternationalFormatter()
创建InternationalFormatter
,未指定Format
。InternationalFormatter(Format format)
创建一个InternationalFormatter
具有指定Format
实例。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 Object
clone()
创建DefaultFormatter的副本。protected Action[]
getActions()
如果getSupportsIncrement
返回true,则返回两个适合递增/递减值的Actions。Format.Field[]
getFields(int offset)
返回Format.Field
与文字有关的常数offset
。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)
返回Object
的表示String
text
。String
valueToString(Object value)
返回Objectvalue
的String表示value
。-
声明方法的类 javax.swing.text.DefaultFormatter
getAllowsInvalid, getCommitsOnValidEdit, getDocumentFilter, getNavigationFilter, getOverwriteMode, getValueClass, setAllowsInvalid, setCommitsOnValidEdit, setOverwriteMode, setValueClass
-
声明方法的类 javax.swing.JFormattedTextField.AbstractFormatter
getFormattedTextField, invalidEdit, setEditValid, uninstall
-
-
-
-
构造方法详细信息
-
InternationalFormatter
public InternationalFormatter()
创建InternationalFormatter
,未指定Format
。
-
InternationalFormatter
public InternationalFormatter(Format format)
创建一个InternationalFormatter
具有指定Format
实例。- 参数
-
format
- 用于从/转换为字符串的格式化实例
-
-
方法详细信息
-
setFormat
public void setFormat(Format format)
设置指示可以编辑和显示的合法值的格式。- 参数
-
format
-Format
用于从/转换为字符串的实例
-
getFormat
public Format getFormat()
返回指示可以编辑和显示的合法值的格式。- 结果
- 用于从/转换为字符串的格式实例
-
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()
返回最大允许值。- 结果
- 可输入的最大合法值
-
install
public void install(JFormattedTextField ftf)
将DefaultFormatter
安装到特定的JFormattedTextField
。 这将调用valueToString
将当前值从JFormattedTextField
转换为String。 那么这将安装Action
从sgetActions
,该DocumentFilter
从返回getDocumentFilter
和NavigationFilter
从返回getNavigationFilter
至JFormattedTextField
。如果子类希望在
JFormattedTextField
上安装其他侦听器,则通常只需要覆盖它。如果在将当前值转换为String时存在
ParseException
,则会将文本设置为空字符串,并将JFormattedTextField
标记为处于无效状态。虽然这是一种公共方法,但这通常仅适用于
JFormattedTextField
子类。JFormattedTextField
将在值更改或其内部状态更改的适当时间调用此方法。- 重写:
-
install
在类DefaultFormatter
- 参数
-
ftf
- 要格式化的JFormattedTextField,可以为null,表示从当前JFormattedTextField卸载。
-
valueToString
public String valueToString(Object value) throws ParseException
返回Objectvalue
的String表示value
。 这format
在当前Format
上调用Format
。- 重写:
-
valueToString
类DefaultFormatter
- 参数
-
value
- 要转换的值 - 结果
- 字符串表示的值
- 异常
-
ParseException
- 如果转换中存在错误
-
stringToValue
public Object stringToValue(String text) throws ParseException
返回Object
的表示String
text
。- 重写:
-
stringToValue
在类DefaultFormatter
- 参数
-
text
-String
要转换 - 结果
-
Object
文字表示 - 异常
-
ParseException
- 如果转换中存在错误
-
getFields
public Format.Field[] getFields(int offset)
返回Format.Field
与文字有关的常数offset
。 如果offset
不是当前文本的有效位置,则返回空数组。- 参数
-
offset
- 要检查的文本的偏移量 - 结果
- 与给定位置的文本关联的Format.Field常量。
-
clone
public Object clone() throws CloneNotSupportedException
创建DefaultFormatter的副本。- 重写:
-
clone
在类DefaultFormatter
- 结果
- DefaultFormatter的副本
- 异常
-
CloneNotSupportedException
- 如果对象的类不支持Cloneable
接口。 重写clone
方法的子类也可以抛出此异常以指示无法克隆实例。 - 另请参见:
-
Cloneable
-
getActions
protected Action[] getActions()
如果getSupportsIncrement
返回true,则返回两个适合递增/递减值的Actions。- 重写:
-
getActions
在类JFormattedTextField.AbstractFormatter
- 结果
- 要在JFormattedTextField上安装的操作数组
-
-