- java.lang.Object
-
- javax.swing.JFormattedTextField.AbstractFormatter
-
- javax.swing.text.DefaultFormatter
-
- All Implemented Interfaces:
-
Serializable
,Cloneable
- 已知直接子类:
-
InternationalFormatter
,MaskFormatter
public class DefaultFormatter extends JFormattedTextField.AbstractFormatter implements Cloneable, Serializable
DefaultFormatter
格式化任意对象。 格式化是通过调用toString
方法完成的。 为了将值转换为String,您的类必须提供一个构造函数,它接受一个String参数。 如果没有找到接受String的单个参数构造函数,则返回的值将是传入stringToValue
的String。DefaultFormatter
实例不能在JFormattedTextField
多个实例中JFormattedTextField
。 要获得已配置的DefaultFormatter
的副本,请使用clone
方法。警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4版本开始,所有JavaBeans的长期存储支持已被添加到
java.beans
软件包中。 请参阅XMLEncoder
。- 从以下版本开始:
- 1.4
- 另请参见:
-
JFormattedTextField.AbstractFormatter
, Serialized Form
-
-
构造方法摘要
构造方法 Constructor 描述 DefaultFormatter()
创建一个DefaultFormatter。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 Object
clone()
创建DefaultFormatter的副本。boolean
getAllowsInvalid()
返回正在编辑的值是否允许在一段时间内无效。boolean
getCommitsOnValidEdit()
当编辑发布回JFormattedTextField
时返回。protected DocumentFilter
getDocumentFilter()
返回DocumentFilter
用于限制可以输入到JFormattedTextField
。protected NavigationFilter
getNavigationFilter()
返回NavigationFilter
用于限制光标放置的位置。boolean
getOverwriteMode()
返回插入字符时的行为。Class<?>
getValueClass()
返回用于创建新对象的类。void
install(JFormattedTextField ftf)
将DefaultFormatter
安装到特定的JFormattedTextField
。void
setAllowsInvalid(boolean allowsInvalid)
设置正在编辑的值是否允许在一段时间内无效(即stringToValue
抛出一个ParseException
)。void
setCommitsOnValidEdit(boolean commit)
编辑编辑时设置为JFormattedTextField
。void
setOverwriteMode(boolean overwriteMode)
配置插入字符时的行为。void
setValueClass(Class<?> valueClass)
设置用于创建新对象的类。Object
stringToValue(String string)
通过使用String参数的构造函数将String中的传递转换为getValueClass
的实例。String
valueToString(Object value)
通过toString
方法将Object中传递的对象转换为字符串。-
Methods inherited from class javax.swing.JFormattedTextField.AbstractFormatter
getActions, getFormattedTextField, invalidEdit, setEditValid, uninstall
-
-
-
-
方法详细信息
-
install
public void install(JFormattedTextField ftf)
将DefaultFormatter
安装到特定的JFormattedTextField
。 这将调用valueToString
将当前值从JFormattedTextField
转换为字符串。 那么这将安装Action
从sgetActions
,该DocumentFilter
从返回getDocumentFilter
和NavigationFilter
从返回getNavigationFilter
到JFormattedTextField
。子类通常只需要覆盖这个,如果他们希望在
JFormattedTextField
上安装其他监听JFormattedTextField
。如果将当前值转换为字符串时有
ParseException
,则将文本设置为空字符串,并将JFormattedTextField
标记为无效状态。虽然这是一种公共方法,但这通常只适用于
JFormattedTextField
子类。JFormattedTextField
将在值更改或其内部状态更改的适当时候调用此方法。- 重写:
-
install
在JFormattedTextField.AbstractFormatter
- 参数
-
ftf
- JFormattedTextField格式化,可能为null表示从当前JFormattedTextField卸载。
-
setCommitsOnValidEdit
public void setCommitsOnValidEdit(boolean commit)
编辑编辑时设置为JFormattedTextField
。 如果为真,则在每次有效的编辑之后调用commitEdit
(任何时候编辑文本)。 另一方面,如果这是假的DefaultFormatter
不发布编辑回JFormattedTextField
。 因此,JFormattedTextField
的值将改变的唯一时间是在commitEdit
调用JFormattedTextField
,通常在按下Enter或聚焦离开JFormattedTextField
。- 参数
-
commit
- 用于指示何时将编辑提交回JTextComponent
-
getCommitsOnValidEdit
public boolean getCommitsOnValidEdit()
当编辑发布回JFormattedTextField
时返回。- 结果
- 如果编辑在每次有效的编辑后都被提交,则为true
-
setOverwriteMode
public void setOverwriteMode(boolean overwriteMode)
配置插入字符时的行为。 如果overwriteMode
为true(默认值),新字符将覆盖模型中的现有字符。- 参数
-
overwriteMode
- 表示是否使用覆盖或重击模式
-
getOverwriteMode
public boolean getOverwriteMode()
返回插入字符时的行为。- 结果
- 如果新插入的字符覆盖现有字符,则为true
-
setAllowsInvalid
public void setAllowsInvalid(boolean allowsInvalid)
设置所编辑的值是否允许在一段时间内无效(即stringToValue
抛出一个ParseException
)。 允许用户临时输入无效值通常是方便的。- 参数
-
allowsInvalid
- 用于指示编辑的值是否始终有效
-
getAllowsInvalid
public boolean getAllowsInvalid()
返回正在编辑的值是否允许在一段时间内无效。- 结果
- 如果编辑的值必须始终有效,则为false
-
setValueClass
public void setValueClass(Class<?> valueClass)
设置用于创建新对象的类。 如果传入的类没有一个接受String的单个参数构造函数,那么将使用String值。- 参数
-
valueClass
- 用于从stringToValue构造返回值的类
-
getValueClass
public Class<?> getValueClass()
返回用于创建新对象的类。- 结果
- 用于从stringToValue构造返回值的类
-
stringToValue
public Object stringToValue(String string) throws ParseException
通过使用String参数的构造函数将String中的传递转换为getValueClass
的实例。 如果getValueClass
返回null,将使用JFormattedTextField
中的当前值的类。 如果这是null,将返回一个String。 如果构造函数抛出异常,将抛出一个ParseException
。 如果没有单个参数String构造函数,将返回string
。- Specified by:
-
stringToValue
在JFormattedTextField.AbstractFormatter
- 参数
-
string
- 要转换的字符串 - 结果
- 文本的对象表示
- 异常
-
ParseException
- 转换中是否有错误
-
valueToString
public String valueToString(Object value) throws ParseException
通过toString
方法将Object中传递的对象转换为字符串。- Specified by:
-
valueToString
在JFormattedTextField.AbstractFormatter
- 参数
-
value
- 要转换的价值 - 结果
- 值的字符串表示
- 异常
-
ParseException
- 如果转换中有错误
-
getDocumentFilter
protected DocumentFilter getDocumentFilter()
返回DocumentFilter
用于限制可以输入到JFormattedTextField
。- 重写:
-
getDocumentFilter
在JFormattedTextField.AbstractFormatter
- 结果
- DocumentFilter来限制编辑
-
getNavigationFilter
protected NavigationFilter getNavigationFilter()
返回NavigationFilter
用于限制光标放置的位置。- 重写:
-
getNavigationFilter
在JFormattedTextField.AbstractFormatter
- 结果
- NavigationFilter限制导航
-
clone
public Object clone() throws CloneNotSupportedException
创建DefaultFormatter的副本。- 重写:
-
clone
在JFormattedTextField.AbstractFormatter
- 结果
- DefaultFormatter的副本
- 异常
-
CloneNotSupportedException
- 如果对象的类不支持Cloneable
接口。 覆盖clone
方法的子类也可以抛出此异常以指示实例无法克隆。 - 另请参见:
-
Cloneable
-
-