所有类
javax.swing.text
类 NumberFormatter
java.lang.Object
javax.swing.JFormattedTextField.AbstractFormatter
javax.swing.text.DefaultFormatter
javax.swing.text.InternationalFormatter
javax.swing.text.NumberFormatter
- 所有已实现的接口:
- Serializable, Cloneable
-
public class NumberFormatter
- extends InternationalFormatter
添加数字特殊行为的 InternationalFormatter
的子类 NumberFormatter
。使用的规范(这些规范只在 NumberFormatter
不显示无效数字时使用,如 setAllowsInvalid(false)
)有:
- 在除指数字段外的任何字段中按下 +/-(- 由与
DecimalFormat
相关的 DecimalFormatSymbols
确定)将试图把数的符号更改为正/负。
- 在指数字段中按下 +/-(- 由与
DecimalFormat
相关的 DecimalFormatSymbols
确定)将试图把指数符号更改为正/负。
如果要显示特定数字,则可能希望打开改写模式 setOverwriteMode(true)
。例如:
DecimalFormat decimalFormat = new DecimalFormat("0.000E0");
NumberFormatter textFormatter = new NumberFormatter(decimalFormat);
textFormatter.setOverwriteMode(true);
textFormatter.setAllowsInvalid(false);
如果打算允许用户输入小数值,则应强制 DecimalFormat 至少包含一个小数 (#.0###
),或允许该值无效 setAllowsInvalid(true)
。否则,用户可能无法输入小数值。
NumberFormatter
提供的 stringToValue
行为与其超类的这一行为稍有不同。如果已为 DefaultFormatter.setValueClass(java.lang.Class)
值(也就是 Integer
、Long
、Float
、Double
、Byte
或 Short
之一)指定了某个类,并且 Format 的 parseObject
返回一个 Number
的实例,则将使用适合于该值类表示的基本类型的构造方法创建一个该值类的对应实例。例如:setValueClass(Integer.class)
将导致结果值通过 new Integer(((Number)formatter.parseObject(string)).intValue())
创建。通常,当希望设置最小/最大值时此方法很有用,因为各种 Number
实现一般不相互比较。如果由于某种原因需要某些值的特定 Number
实现,此方法也非常有用。
警告:此类的已序列化对象与以后的 Swing 版本不兼容。当前序列化支持适用于短期存储或运行相同 Swing 版本的应用程序之间的 RMI。从 1.4 版本开始,已在 java.beans
包中添加了支持所有 JavaBeansTM 长期存储的功能。请参见 XMLEncoder
。
- 从以下版本开始:
-
1.4
从类 javax.swing.text.InternationalFormatter 继承的方法 |
clone, getActions, getFields, getFormat, getMaximum, getMinimum, install, setMaximum, setMinimum, stringToValue, valueToString |
NumberFormatter
public NumberFormatter()
-
创建具有默认
NumberFormat
实例的 NumberFormatter
,该实例通过 NumberFormat.getNumberInstance()
获得。
NumberFormatter
public NumberFormatter(NumberFormat format)
-
创建具有指定 Format 实例的 NumberFormatter。
- 参数:
format
- 用于指示合法值的 Format
setFormat
public void setFormat(Format format)
-
设置指示可以编辑和显示的合法值的格式。
如果已经使用了默认构造方法,则将通过 NumberFormat.getNumberInstance()
方法为当前语言环境确定此属性值。
-
- 覆盖:
-
类
InternationalFormatter
中的 setFormat
-
- 参数:
format
- 用于指示合法值的 NumberFormat 实例
所有类