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