如何设置MaskFormatter和JFormattedTextField以允许部分匹配?
例如:
我希望用户能够使用此掩码"## ###### ####“输入数字,因此如果用户输入'123456789123‘,格式化程序会将其更改为'12 345678 9123’(它会在第二个和第八个字符之后添加空格)。
但是,我也希望用户能够输入'12346578',转换为'12 345678‘,并且仍然是一个有效值(这样我就可以使用jFormatedTextField1.getValue()获得它)
这是我的代码的一部分:
JFormattedTextField jFormattedTextField1;
MaskFormatter mf;
mf = new MaskFormatter("## ###### ####");
jFormattedTextField1.setFormatterFactory(new DefaultFormatterFactory(mf));我尝试将focusLostBehavior设置为持久化,这样退出jFormattedTextField1后就不会清除该值,但这样在使用调用jFormattedTextField1.getValue()
发布于 2010-03-17 21:43:31
通过使用星号设置掩码并将其有效字符设置为数字和空格字符too解决了此问题。
JFormattedTextField jFormattedTextField1;
MaskFormatter mf;
mf = new MaskFormatter("** ****** ****");
mf.setValidCharacters("0123456789 ");
jFormattedTextField1.setFormatterFactory(new DefaultFormatterFactory(mf));然后,我可以随时使用getValue()修剪我得到的字符串,以便删除尾随空格。
https://stackoverflow.com/questions/2455214
复制相似问题