- 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
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
行为。 如果指定了值,一类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
这也很有用。警告:此类的序列化对象与以后的Swing版本不兼容。 当前的序列化支持适用于运行相同版本Swing的应用程序之间的短期存储或RMI。 从1.4开始,
java.beans
软件包中添加了对所有JavaBeansjava.beans
长期存储的支持。 请参阅XMLEncoder
。- 从以下版本开始:
- 1.4
- 另请参见:
- Serialized Form
-
-
构造方法摘要
构造方法 构造器 描述 NumberFormatter()
创建NumberFormatter
与默认NumberFormat
从获得的实例NumberFormat.getNumberInstance()
。NumberFormatter(NumberFormat format)
使用指定的Format实例创建NumberFormatter。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 void
setFormat(Format format)
设置指示可以编辑和显示的合法值的格式。-
声明方法的类 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()
创建NumberFormatter
与默认NumberFormat
从获得的实例NumberFormat.getNumberInstance()
。
-
NumberFormatter
public NumberFormatter(NumberFormat format)
使用指定的Format实例创建NumberFormatter。- 参数
-
format
- 用于规定合法值的格式
-
-
方法详细信息
-
setFormat
public void setFormat(Format format)
设置指示可以编辑和显示的合法值的格式。如果您使用了nullary构造函数,则将通过
NumberFormat.getNumberInstance()
方法为当前区域设置确定此属性的值。- 重写:
-
setFormat
在类InternationalFormatter
- 参数
-
format
- NumberFormat instance used to dictate legal values
-
-