如何阻止密钥被派遣

时间:2013-01-29 12:29:52

标签: java swing listener keyboard-events

是否可以停止发送密钥?我基本上想要禁用数字键盘来触发其数字 - 它应该触发一个宏。问题是两者都做到了。这是代码:

@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,则表示它将传递该事件。它似乎也是如此。有没有办法阻止它通过事件?或者我在做一些愚蠢的事情?

谢谢,

1 个答案:

答案 0 :(得分:3)

您应该在活动上致电consume()以表明其已被处理。

@Override
public boolean dispatchKeyEvent(KeyEvent keyEvent) {

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