这是场景。我的项目中有一个 jtextArea 。在 jtextArea 的按键事件上,我使用 KeyEvent
的 getKeyChar()
方法检查按键是否有效。如果字符是有效字符(根据我的条件),那么应该插入它,否则不应该插入。我已经搜索过,但找不到在字符无效的情况下取消事件的方法。在 C#
中这是可能的,但在 java
中是否有任何方法可以取消该事件,以便字符不会插入到 jtextarea 中?
这里有一些使用 evt.consume()
的简单代码,但它不起作用
private void txtArea1KeyPressed(java.awt.event.KeyEvent evt) {
evt.consume();
return;
}
最佳答案
不要将 KeyListener
与文本组件一起使用,无法保证事件的触发顺序,因此键可能已经更新了底层 Document
当您的听众收到通知时。
它也不处理当用户将文本粘贴到字段中或程序更新字段时发生的情况
相反,请使用DocumentFilter
,它不允许过滤掉推送到Document
模型底层组件的内容
关于java - 如何取消jtextarea事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27938054/