- java.lang.Object
-
- javax.swing.JFormattedTextField.AbstractFormatter
-
- javax.swing.text.DefaultFormatter
-
- javax.swing.text.InternationalFormatter
-
- javax.swing.text.NumberFormatter
-
- All Implemented Interfaces:
-
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开始,支持所有JavaBeans的长期存储已被添加到
java.beans包中。 请参阅XMLEncoder。- 从以下版本开始:
- 1.4
- 另请参见:
- Serialized Form
-
-
构造方法摘要
构造方法 Constructor 描述 NumberFormatter()创建一个NumberFormatter具有从NumberFormat.getNumberInstance()获取的默认NumberFormat实例。NumberFormatter(NumberFormat format)使用指定的Format实例创建NumberFormatter。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 voidsetFormat(Format format)设置指定可编辑和显示的合法值的格式。-
Methods inherited from class javax.swing.text.DefaultFormatter
getAllowsInvalid, getCommitsOnValidEdit, getDocumentFilter, getNavigationFilter, getOverwriteMode, getValueClass, setAllowsInvalid, setCommitsOnValidEdit, setOverwriteMode, setValueClass
-
Methods inherited from class javax.swing.text.InternationalFormatter
clone, getActions, getFields, getFormat, getMaximum, getMinimum, install, setMaximum, setMinimum, stringToValue, valueToString
-
Methods inherited from class javax.swing.JFormattedTextField.AbstractFormatter
getFormattedTextField, invalidEdit, setEditValid, uninstall
-
-
-
-
构造方法详细信息
-
NumberFormatter
public NumberFormatter()
创建一个NumberFormatter具有从NumberFormat.getNumberInstance()获取的默认NumberFormat实例。
-
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
-
-