java - 如何停止发送 key

标签 java swing listener keyboard-events

是否可以阻止 key 的发送?我基本上想禁止数字键盘触发其数字 - 它应该触发一个宏。问题是它两者兼而有之。这是代码:

@Override
public boolean dispatchKeyEvent(KeyEvent keyEvent) {

    //If key has macro assigned then fire that (working fine) 

    if (keyEvent.getKeyLocation() == KeyEvent.KEY_LOCATION_NUMPAD) {
         return true;
    }
}

阅读 KeyEventDispatacher 的规范,如果返回 false,则表示它将传递事件。它似乎也在为 true 做同样的事情。有没有办法阻止它传递事件?还是我在做一些愚蠢的事情?

谢谢

最佳答案

您应该调用consume()事件上显示它已被处理。

@Override
public boolean dispatchKeyEvent(KeyEvent keyEvent) {

    if (keyEvent.getKeyLocation() == KeyEvent.KEY_LOCATION_NUMPAD) {
         keyEvent.consume();
         return true;
    }
}

关于java - 如何停止发送 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14582928/

相关文章:

java - 弹出菜单在java中不起作用?

安卓 SearchView OnFocusChangeListener : onFocusChange is not called at all

ios - 我是否必须始终删除 Firestore 中的监听器?

java - 将不同类型的可比较数量与零进行比较

java - 用户证书身份验证无法正常工作的 HTTPS Apache CXF 上的 Soap

swing - 如何从 nasa worldwind 中删除世界地图

java - 单独类中的 MouseListener 不起作用

java - 如何解耦日志实现和API?

java - 我应该在方法声明中提及哪些异常,以及我应该在 catch block 中捕获哪些异常?

java - 在饼图切片中间绘制带三角形的饼图