如何限制JTextArea只接受一组合法的字符?

时间:2009-10-27 10:36:35

标签: java jtextarea

任何人都知道是否有一种简单的方法来限制JTextArea的允许字符。即类似于使用MaskFormatter的JTextField。

具体来说,我想将JTextArea的允许字符限制为仅大写字符,并且只限制非常有限的字符集,例如!“#¤%& /()=

4 个答案:

答案 0 :(得分:2)

实施javax.swing.text.DocumentFilter以删除不适当的字符。将其设置在您最喜欢的AbstractDocument上,然后使用它构建JTextArea

答案 1 :(得分:2)

您可能会发现Chaining Document Filters的概念很有趣。第一个过滤器会自动将小写字符转换为大写字母(包含在上面的链接中),因此用户不必担心这一点,然后第二个过滤器将验证所有字符(您需要编写自己的字符)。 / p>

答案 2 :(得分:0)

尝试扩展PlainDocument并更改方法insertString()以过滤掉所有不需要的字符,并将大写字母替换为低位字母。然后,您可以在JTextArea

中使用此特殊文档

答案 3 :(得分:0)

您可以为JTextArea文档指定过滤器。 只需覆盖DocumentFilter类中的方法insertString即可忽略字符