0

作業中の Java アプリケーションでいくつかのホットキーを変更しようとしていますが、使用しているシステムは 3 つのボタン キーの組み合わせでは機能しないようです。現在、JMenuItem アイテムがあり、次のような呼び出しでホットキーを設定します。

menuItem.setAccelerator(getAcceleratorKey(accelerator));

getAcceleratorKey メソッドは次のとおりです。

    private KeyStroke getAcceleratorKey(int keyCode) {

    return KeyStroke.getKeyStroke(
                    keyCode,
                    Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),
                    false);
}

このメソッドがパラメーターとして取る keyCode は、コマンドで押された 1 つのキーのみであると思われます。では、元に戻すには Command-shift z のようなことをするにはどうすればよいでしょうか? 別のクラスを使用する必要がありますか?

4

1 に答える 1

1

KeyStroke.getKeyStroke() は修飾子をパラメーターとして受け取ります。それらの組み合わせは、あなたが望むものを与えるはずです:

KeyStroke.getKeyStroke(keyCode, 
  java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.META_MASK);
于 2009-11-18T23:06:06.280 に答える