- java.lang.Object
-
- javax.swing.JFormattedTextField.AbstractFormatter
-
- javax.swing.text.DefaultFormatter
-
- javax.swing.text.InternationalFormatter
-
- All Implemented Interfaces:
-
Serializable,Cloneable
- 已知直接子类:
-
DateFormatter,NumberFormatter
public class InternationalFormatter extends DefaultFormatter
InternationalFormatter延伸DefaultFormatter,使用的实例java.text.Format来处理转换为字符串,并从字符串的转换。如果
getAllowsInvalid()为假,则会在Format格式化每个编辑的当前文本。您可以通过
setMinimum和setMaximum方法指定最小值和最大值。 为了使其工作,从stringToValue返回的值必须通过Comparable接口与最小/最大值相当。请注意如何配置
Format和InternationalFormatter,因为可能会创建无法输入某些值的情况。 考虑日期格式“M / D / Y-Y”,一个InternationalFormatter,始终是有效的(setAllowsInvalid(false)),是在覆盖模式(setOverwriteMode(true))和日期99年7月1日。 在这种情况下,用户将无法输入两位数字的月份或月份。 为避免这种情况,格式应为“MM / dd / yy”。如果
InternationalFormatter被配置为只允许有效值(setAllowsInvalid(false)),每一个有效的编辑将导致文本JFormattedTextField是从完全复位Format。 光标位置也将被调整为文字字符从结果字符串中添加/删除。InternationalFormatter的“行为stringToValue比略有不同DefaultTextFormatter,它执行以下操作:-
parseObject被引用Format指定setFormat - 如果已经为值设置了一个类(
setValueClass),则调用实现方法将从parseObject返回的值转换为适当的类。 - 如果一个
ParseException没有抛出,并且该值超出了最小/最大值,则抛出一个ParseException。 - 返回值。
InternationalFormatter以这种方式实现了stringToValue,这样你可以指定一个可以返回的替代类Format。警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,对所有JavaBeans的长期存储的支持已被添加到
java.beans包中。 请参阅XMLEncoder。- 从以下版本开始:
- 1.4
- 另请参见:
-
Format,Comparable, Serialized Form
-
-
构造方法摘要
构造方法 Constructor 描述 InternationalFormatter()创建一个InternationalFormatter,没有指定Format。InternationalFormatter(Format format)创建一个InternationalFormatter与指定的Format实例。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 Objectclone()创建DefaultFormatter的副本。protected Action[]getActions()如果getSupportsIncrement返回true,则返回两个适用于递增/递减值的动作。Format.Field[]getFields(int offset)返回Format.Field与文字有关的常数offset。FormatgetFormat()返回指定可编辑和显示的合法值的格式。Comparable<?>getMaximum()返回最大允许值。Comparable<?>getMinimum()返回最小允许值。voidinstall(JFormattedTextField ftf)将DefaultFormatter安装到特定的JFormattedTextField。voidsetFormat(Format format)设置指定可编辑和显示的合法值的格式。voidsetMaximum(Comparable<?> max)设置最大允许值。voidsetMinimum(Comparable<?> minimum)设置最小允许值。ObjectstringToValue(String text)返回Object的表示Stringtext。StringvalueToString(Object value)返回Objectvalue的String表示value。-
Methods inherited from class javax.swing.text.DefaultFormatter
getAllowsInvalid, getCommitsOnValidEdit, getDocumentFilter, getNavigationFilter, getOverwriteMode, getValueClass, setAllowsInvalid, setCommitsOnValidEdit, setOverwriteMode, setValueClass
-
Methods inherited from class 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为非空,则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转换为字符串。 那么这将安装Action从sgetActions,该DocumentFilter从返回getDocumentFilter和NavigationFilter从返回getNavigationFilter到JFormattedTextField。子类通常只需要覆盖这个,如果他们希望在
JFormattedTextField上安装其他监听JFormattedTextField。如果将当前值转换为字符串时有
ParseException,则将文本设置为空字符串,并将JFormattedTextField标记为无效状态。虽然这是一种公共方法,但这通常只适用于
JFormattedTextField子类。JFormattedTextField将在值更改或其内部状态更改的适当时候调用此方法。- 重写:
-
install在DefaultFormatter - 参数
-
ftf- JFormattedTextField格式化,可能为空,表示从当前JFormattedTextField卸载。
-
valueToString
public String valueToString(Object value) throws ParseException
返回Objectvalue的String表示value。 这将调用format当前的Format。- 重写:
-
valueToString在DefaultFormatter - 参数
-
value- 要转换的价值 - 结果
- 值的字符串表示
- 异常
-
ParseException- 如果转换中有错误
-
stringToValue
public Object stringToValue(String text) throws ParseException
返回Object的表示Stringtext。- 重写:
-
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,则返回两个适用于递增/递减值的动作。- 重写:
-
getActions在JFormattedTextField.AbstractFormatter - 结果
- 要在JFormattedTextField上安装的操作数组
-
-