1

キーのディスパッチを停止することはできますか? 基本的に、テンキーが数字を発火するのを無効にしたい - 代わりにマクロを起動する必要がある。問題は、それが両方を行うことです。コードは次のとおりです。

@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;
    }
}

KeyEventDispatcher の仕様を読むと、false を返す場合、イベントを渡すと表示されます。true に対しても同じことをしているようです。イベントを渡すのを止める方法はありますか? それとも私は愚かなことをしていますか?

ありがとう、

4

1 に答える 1

3

consume()イベントを呼び出して、処理されたことを示す必要があります。

@Override
public boolean dispatchKeyEvent(KeyEvent keyEvent) {

    if (keyEvent.getKeyLocation() == KeyEvent.KEY_LOCATION_NUMPAD) {
         keyEvent.consume();
         return true;
    }
}
于 2013-01-29T12:41:33.733 に答える