- 所有已实现的接口:
Serializable,Cloneable
NumberFormatter 子类 InternationalFormatter 添加数字的特殊行为。其中的特化是(这些仅在 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 之一,并且格式的 parseObject 返回 Number 的实例,将创建值类的相应实例使用构造函数适用于值类表示的原始类型。例如:setValueClass(Integer.class) 将导致通过 Integer.valueOf(((Number)formatter.parseObject(string)).intValue()) 创建结果值。如果您希望设置最小/最大值,这通常很有用,因为各种 Number 实现通常无法相互比较。如果出于某种原因您需要特定的 Number 实现来实现您的值,这也很有用。
Warning: 此类的序列化对象将与未来的 Swing 版本不兼容。当前的序列化支持适用于运行相同版本 Swing 的应用程序之间的短期存储或 RMI。从 1.4 开始,对所有 JavaBeans 的长期存储的支持已添加到 java.beans 包中。请参阅 XMLEncoder 。
- 自从:
- 1.4
-
构造方法总结
构造方法构造方法描述使用从NumberFormat.getNumberInstance()获得的默认NumberFormat实例创建一个NumberFormatter。NumberFormatter(NumberFormat format) 使用指定的 Format 实例创建 NumberFormatter。 -
方法总结
在类 javax.swing.text.InternationalFormatter 中声明的方法
clone, getActions, getFields, getFormat, getMaximum, getMinimum, install, setMaximum, setMinimum, stringToValue, valueToString在类 javax.swing.text.DefaultFormatter 中声明的方法
getAllowsInvalid, getCommitsOnValidEdit, getDocumentFilter, getNavigationFilter, getOverwriteMode, getValueClass, setAllowsInvalid, setCommitsOnValidEdit, setOverwriteMode, setValueClass在类 javax.swing.JFormattedTextField.AbstractFormatter 中声明的方法
getFormattedTextField, invalidEdit, setEditValid, uninstall
-
构造方法详细信息
-
NumberFormatter
public NumberFormatter()使用从NumberFormat.getNumberInstance()获得的默认NumberFormat实例创建一个NumberFormatter。 -
NumberFormatter
使用指定的 Format 实例创建 NumberFormatter。- 参数:
format- 用于指定合法值的格式
-
-
方法详情
-
setFormat
设置规定可以编辑和显示的合法值的格式。如果您使用了 nullary 构造函数,则将通过
NumberFormat.getNumberInstance()方法为当前locale确定此属性的值。- 重写:
setFormat在类InternationalFormatter中- 参数:
format- 用于指定合法值的 NumberFormat 实例
-