3

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

具体来说,我想将 JTextArea 的允许字符限制为仅大写字符和非常有限的设置字符,例如 !"#¤%&/()=

4

4 回答 4

2

实施 ajavax.swing.text.DocumentFilter以删除不适当的字符。把它放在你最喜欢的地方AbstractDocument,然后用它来构建你JTextArea

于 2009-10-27T11:39:47.503 回答
2

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

于 2009-10-27T15:18:36.000 回答
0

您可以为 JTextArea 文档分配一个过滤器。只需覆盖类 DocumentFilter 中的方法 insertString 以忽略字符

于 2009-10-27T11:41:47.653 回答
0

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

于 2009-10-27T10:57:51.657 回答