首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAVA / MaskFormatter:允许占位符字符

JAVA / MaskFormatter:允许占位符字符
EN

Stack Overflow用户
提问于 2018-08-16 09:16:28
回答 1查看 399关注 0票数 1

我使用以下代码在我的MaskFormatter上应用JFormattedTextField,以便使它接受IBANs (2个字母,后面是20个数字):

代码语言:javascript
复制
MaskFormatter formatter = new MaskFormatter("UU## #### #### #### #### ##");
formatter.setPlaceholderCharacter('_');
jFormattedTextField.setFormatterFactory(new DefaultFormatterFactory(formatter));

每当该文本字段中有一个空空间时,占位符字符('_')就会如愿以偿地保存该位置。但是,一旦您将一个不同的文本字段聚焦,该字段将检查内部的字符串是否有效,否则将重新设置它。但是,如果它看起来是这样的话,我不希望它改变--例如:

AA00 11_1 2222 ____ 4444 5555 66

为了实现这一点,我必须允许占位符字符作为每个位置上的有效MaskCharacter。这可以通过复制整个类和修改isValidCharacter()来实现,但这是很脏的。

有没有办法做这样的事?:

代码语言:javascript
复制
new MaskFormatter("[U^_][U^_][#^_][#^_] [#^_][#^_][#^_][#^_] [#^_][#^_][#^_][#^_] ...");

或者像formatter.allowCharacter('_')这样的东西

它使用“*,但这并不强迫用户在给定位置输入有效字符,所以这不是我想要的。

EN

回答 1

Stack Overflow用户

发布于 2018-08-16 10:25:28

方法isValidCharacter()查找下面的验证方法。我想,在下面的方法中设置适当的值就足够了。

代码语言:javascript
复制
formatter.setValidCharacters("")
formatter.setInvalidCharacters("")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51873562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档