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

发布于 2024-08-08 20:53:38 字数 145 浏览 7 评论 0原文

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

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

Anybody know if there is an easy way to limit the allowed characters for a JTextArea. I.e. similar to JTextField using MaskFormatter.

Specifically I want to limit the allowed characters for a JTextArea to only uppercase characters and only a very limited set characters like !"#¤%&/()=

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

二智少女 2024-08-15 20:53:38

实现 javax.swing.text.DocumentFilter 来删除不适当的字符。将其设置在您最喜欢的 AbstractDocument 上,并用它构造您的 JTextArea

Implement a javax.swing.text.DocumentFilter to remove inappropriate characters. Set that on your favourite AbstractDocument and construct you JTextArea with that.

入怼 2024-08-15 20:53:38

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

You may find the concept of Chaining Document Filters interesting. The first filter would automatically convert lower case characters to upper case (included in above link) so the user doesn't have to worry about this, then the second filter would validate all the characters (you would need to write your own).

始终不够爱げ你 2024-08-15 20:53:38

尝试扩展 PlainDocument 并更改方法 insertString() 以过滤掉所有不需要的字符并将小写字母替换为大写字母。然后您可以在 JTextArea 中使用这个特殊文档。

Try to extend PlainDocument and change the method insertString() to filter out all unwanted characters and replace lower with uppercase letters. Then you can use this special document in your JTextArea.

傾城如夢未必闌珊 2024-08-15 20:53:38

您可以将过滤器分配给 JTextArea 文档。
只需重写类 DocumentFilter 中的方法 insertString 即可忽略字符

You can assign a filter to JTextArea document.
Just override the method insertString in the class DocumentFilter to ignore the characters

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文