任何人都知道是否有一种简单的方法来限制JTextArea的允许字符。即类似于使用MaskFormatter的JTextField。
具体来说,我想将JTextArea的允许字符限制为仅大写字符,并且只限制非常有限的字符集,例如!“#¤%& /()=
答案 0 :(得分:2)
实施javax.swing.text.DocumentFilter
以删除不适当的字符。将其设置在您最喜欢的AbstractDocument
上,然后使用它构建JTextArea
。
答案 1 :(得分:2)
您可能会发现Chaining Document Filters的概念很有趣。第一个过滤器会自动将小写字符转换为大写字母(包含在上面的链接中),因此用户不必担心这一点,然后第二个过滤器将验证所有字符(您需要编写自己的字符)。 / p>
答案 2 :(得分:0)
尝试扩展PlainDocument
并更改方法insertString()
以过滤掉所有不需要的字符,并将大写字母替换为低位字母。然后,您可以在JTextArea
。
答案 3 :(得分:0)
您可以为JTextArea文档指定过滤器。 只需覆盖DocumentFilter类中的方法insertString即可忽略字符