public class NumberFormatter extends InternationalFormatter
NumberFormatter子类InternationalFormatter为数字添加特殊行为。
其中的专业是(仅当NumberFormatter不显示无效数字时才使用,例如setAllowsInvalid(false) ):
DecimalFormatSymbols相关联的DecimalFormat ),但指数字段将尝试将数字的符号更改为正/负。 DecimalFormatSymbols相关联的DecimalFormat )将尝试将指数的符号更改为正/负。 如果您显示科学数字,您可能希望打开覆盖模式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相比略有不同的行为stringToValue。 如果指定了值,一类DefaultFormatter.setValueClass(java.lang.Class<?>) ,这是一个Integer , Long , Float , Double , Byte或Short和格式的parseObject返回的实例Number ,该值类的对应实例将使用构造创建适用于值类代表的原始类型。 例如: setValueClass(Integer.class)将导致通过new Integer(((Number)formatter.parseObject(string)).intValue())创建结果值。 如果您希望设置最小/最大值,则通常很有用,因为各种Number实现通常不能相互比较。 如果由于某种原因,你需要一个特定的,这也是有用Number实施你的价值观。
警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,支持所有JavaBeans的长期存储已经添加到java.beans包中。 请参阅XMLEncoder 。
| Constructor and Description |
|---|
NumberFormatter()
创建一个
NumberFormatter与默认的
NumberFormat实例从
NumberFormat.getNumberInstance()获得。
|
NumberFormatter(NumberFormat format)
使用指定的Format实例创建NumberFormatter。
|
| Modifier and Type | Method and Description |
|---|---|
void |
setFormat(Format format)
设置指定可编辑和显示的合法值的格式。
|
clone, getActions, getFields, getFormat, getMaximum, getMinimum, install, setMaximum, setMinimum, stringToValue, valueToStringgetAllowsInvalid, getCommitsOnValidEdit, getDocumentFilter, getNavigationFilter, getOverwriteMode, getValueClass, setAllowsInvalid, setCommitsOnValidEdit, setOverwriteMode, setValueClassgetFormattedTextField, invalidEdit, setEditValid, uninstallpublic NumberFormatter()
NumberFormatter与从
NumberFormat.getNumberInstance()获得的默认
NumberFormat实例。
public NumberFormatter(NumberFormat format)
format - 用于规定合法价值的格式
public void setFormat(Format format)
如果你已经使用了默认构造将会由的方式当前语言环境确定此属性的值NumberFormat.getNumberInstance()方法。
setFormat在
InternationalFormatter
format - 用于指定合法值的NumberFormat实例
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.