gpt4 book ai didi

JAVA/MaskFormatter : Allow Placeholder Character

转载 作者:太空宇宙 更新时间:2023-11-04 10:14:36 26 4
gpt4 key购买 nike

我使用以下代码在我的 JFormattedTextField 上应用 MaskFormatter,以使其接受 IBAN(2 个字母后跟 20 个数字):

MaskFormatter formatter = new MaskFormatter("UU## #### #### #### #### ##");
formatter.setPlaceholderCharacter('_');
jFormattedTextField.setFormatterFactory(new DefaultFormatterFactory(formatter));

每当该文本字段中有空白区域时,占位符字符 ('_') 就会按预期保留该位置。但是,一旦您关注不同的文本字段,该字段将检查内部的字符串是否有效,否则重置它。但是,如果它看起来像这样,我不希望它发生改变:

AA00 11_1 2222 ____ 4444 5555 66

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

有没有办法做类似的事情?:

new MaskFormatter("[U^_][U^_][#^_][#^_] [#^_][#^_][#^_][#^_] [#^_][#^_][#^_][#^_] ...");

或者类似formatter.allowCharacter('_')

<小时/>

它确实可以与“**** **** **** **** **** **”一起工作,但这不会强制用户在给定位置输入有效字符,所以这并不是我真正想要的。

最佳答案

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

formatter.setValidCharacters("")
formatter.setInvalidCharacters("")

关于JAVA/MaskFormatter : Allow Placeholder Character,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51873562/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com