public class MaskFormatter extends DefaultFormatter
MaskFormatter
用于格式化和编辑字符串。一个
MaskFormatter
行为是通过一个字符串指明可包含在
Document
模型的一个特定位置的有效字符控制。下面的字符可以指定:
Character | 描述 |
---|---|
# | Any valid number, uses Character.isDigit . |
' | Escape character, used to escape any of the special formatting characters. |
U | Any character (Character.isLetter ). All lowercase letters are mapped to upper case. |
L | Any character (Character.isLetter ). All upper case letters are mapped to lower case. |
A | Any character or number (Character.isLetter or Character.isDigit ) |
? | Any character (Character.isLetter ). |
* | Anything. |
H | Any hex character (0-9, a-f or A-F). |
典型的字符对应于一个字符,但在某些语言中,这不是这样的。面具是每一个字的基础,因此将调整以适应许多字符是必要的。
你可以进一步限制,可以由setInvalidCharacters
和setValidCharacters
方法输入的字符。setInvalidCharacters
允许您指定的字符是不合法的。setValidCharacters
允许你指定的字符是有效的。例如,下面的代码块,相当于一个面具的0xhhh '无效/有效字符:
maskformatter格式化=新MaskFormatter(“0x ***”);格式化程序。setvalidcharacters(“0123456789abcdefabcdef”);
当初始格式化一个值,如果字符串的长度小于掩码的长度,两个事情可以发生。无论是占位符字符串将被使用,或占位符将被使用。优先给占位符字符串。例如:
maskformatter格式化=新MaskFormatter(“# # # - # # # #”);格式化程序。setplaceholdercharacter('_”);格式化程序。getdisplayvalue(TF,“123”);
将字符串“123”____。如果setPlaceholder("555-1212")
被调用的123-1212”会导致。占位符字符串仅用于初始格式,在随后的格式的占位符将被使用。
如果一个MaskFormatter
配置为只允许有效的字符(setAllowsInvalid(false)
)将必要的文字编辑时,跳过。考虑MaskFormatter
与面具”# # # - # # # #“当前值”555-1212”。使用右箭头键来浏览领域将导致(|表示位置的符号):
| 555-12125 | 55-121255 | 5-1212555 | 1212555-1 | 212' - '是一个文字(不可编辑字符,并跳过)。
类似的行为会在编辑时产生。考虑插入字符串“123-45’和‘12345’到MaskFormatter
在前面的例子。两刀片将导致相同的字符串,“123-45__”。当MaskFormatter
在字符位置3插入处理(“-”),可能会发生两件事:
默认情况下MaskFormatter
不允许无效的编辑,你可以改变这与setAllowsInvalid
法,并将编辑编辑(有效使用setCommitsOnValidEdit
改变)。
默认情况下,MaskFormatter
是改写模式。即,作为字符,键入一个新的字符不被插入,而在当前位置的字符被替换为新类型的字符。你可以通过这样的方法setOverwriteMode
改变这种行为。
警告:序列化该类的对象与以后的Swing版本不兼容。当前的序列化支持适用于短期贮藏或RMI运行相同Swing版本的应用程序之间。为1.4,为所有JavaBeans™长期存储的支持已被添加到java.beans
包。请看XMLEncoder
。
Constructor and Description |
---|
MaskFormatter()
创建一个没有面具的MaskFormatter。
|
MaskFormatter(String mask)
创建一个指定的掩码
MaskFormatter 。
|
Modifier and Type | Method and Description |
---|---|
String |
getInvalidCharacters()
返回输入的字符无效。
|
String |
getMask()
返回格式化掩码。
|
String |
getPlaceholder()
返回要使用的字符串,如果值不完全填充掩码。
|
char |
getPlaceholderCharacter()
返回字符,以代替不存在于值中的字符,即用户必须填写的。
|
String |
getValidCharacters()
返回可以输入的有效字符。
|
boolean |
getValueContainsLiteralCharacters()
如果
stringToValue 应该返回掩码中的原义字符返回true。
|
void |
install(JFormattedTextField ftf)
安装在一个特定的
JFormattedTextField
DefaultFormatter 。
|
void |
setInvalidCharacters(String invalidCharacters)
允许进一步限制可以输入的字符。
|
void |
setMask(String mask)
设置掩码口授的法律性质。
|
void |
setPlaceholder(String placeholder)
设置要使用的字符串,如果值不完全填充掩码。
|
void |
setPlaceholderCharacter(char placeholder)
设置要使用的字符代替不存在的值的字符,即用户必须填写的。
|
void |
setValidCharacters(String validCharacters)
允许进一步限制可以输入的字符。
|
void |
setValueContainsLiteralCharacters(boolean containsLiteralChars)
如果是真的,返回的值和设置值也将包含掩码中的文字字符。
|
Object |
stringToValue(String value)
分析文本,返回的字符串
value 合适的对象表示。
|
String |
valueToString(Object value)
返回一个基于对象的字符串表示形式
value 面具。
|
clone, getAllowsInvalid, getCommitsOnValidEdit, getDocumentFilter, getNavigationFilter, getOverwriteMode, getValueClass, setAllowsInvalid, setCommitsOnValidEdit, setOverwriteMode, setValueClass
getActions, getFormattedTextField, invalidEdit, setEditValid, uninstall
public MaskFormatter()
public MaskFormatter(String mask) throws ParseException
MaskFormatter
。如果将一个
ParseException
mask
是无效的面具扔。
ParseException
如果掩码不包含有效的掩码字符
public void setMask(String mask) throws ParseException
mask
无效扔
ParseException
。
ParseException
如果掩码不包含有效的掩码字符
public String getMask()
public void setValidCharacters(String validCharacters)
invalidCharacters
,和
validCharacters
将允许输入。通过在空(默认)意味着有效的字符只绑定由掩码和无效字符。
validCharacters
如果非空,指定的法律特征。
public String getValidCharacters()
public void setInvalidCharacters(String invalidCharacters)
invalidCharacters
,和
validCharacters
将允许输入。通过在空(默认)意味着有效的字符只绑定的面具和有效的字符。
invalidCharacters
如果非空,指定了非法字符。
public String getInvalidCharacters()
public void setPlaceholder(String placeholder)
placeholder
字符串时使用的格式,如果值不完全填充的面具
public String getPlaceholder()
public void setPlaceholderCharacter(char placeholder)
如果未指定占位符字符串这才适用,或填写不全的面具。
placeholder
字符时使用的格式如果值不完全填充的面具
public char getPlaceholderCharacter()
public void setValueContainsLiteralCharacters(boolean containsLiteralChars)
例如,如果面具'(###) ###-####'
,电流值是'(415) 555-1212'
,和valueContainsLiteralCharacters
是真的stringToValue
将返回'(415) 555-1212'
。另一方面,如果valueContainsLiteralCharacters
是假的,stringToValue
将返回'4155551212'
。
containsLiteralChars
-用于表示如果戴面具字面字符应退还stringtovalue
public boolean getValueContainsLiteralCharacters()
stringToValue
应该返回掩码中的原义字符返回true。
public Object stringToValue(String value) throws ParseException
value
合适的对象表示。这条的字面字符并在必要时调用超
stringToValue
,所以如果你指定了一个值类(
setValueClass
)它的一个实例将被创建。这会如果值不匹配当前的面具扔
ParseException
。参考
setValueContainsLiteralCharacters(boolean)
如何处理细节的文字。
stringToValue
方法重写,继承类
DefaultFormatter
value
字符串转换
ParseException
-如果在转换中出现了一个错误
setValueContainsLiteralCharacters(boolean)
public String valueToString(Object value) throws ParseException
value
基于掩模。指对文字处理的细节
setValueContainsLiteralCharacters(boolean)
。
valueToString
方法重写,继承类
DefaultFormatter
value
价值转换
ParseException
-如果在转换中出现了一个错误
setValueContainsLiteralCharacters(boolean)
public void install(JFormattedTextField ftf)
DefaultFormatter
在一个特定的
JFormattedTextField
。这将调用
valueToString
转换电流值从
JFormattedTextField
为字符串。这将从
getActions
安装
Action
s,回来的
DocumentFilter
getDocumentFilter
和
NavigationFilter
返回到
JFormattedTextField
getNavigationFilter
。
子类通常只需要重写这个如果他们希望在JFormattedTextField
安装额外的听众。
如果在转换电流值为字符串的一ParseException
,这将文本设置为空字符串,并标记JFormattedTextField
处于无效状态。
虽然这是一个公共方法,这通常是唯一有用的JFormattedTextField
subclassers。JFormattedTextField
将调用此方法的值变化时,适当的时候,或其内部状态的变化。
install
方法重写,继承类
DefaultFormatter
ftf
- JFormattedTextField格式,可从目前的jformattedtextfield卸载空指示。
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.