Javaでの設定3つのボタンのアクセラレータキーのホットキー(OSX)
-
20-09-2019 - |
質問
私は私が上wokring午前中のJavaアプリケーションのいくつかのホットキーを変更しようとしていますし、私が使用しているシステムは3つのボタンキーの組み合わせでは動作しないかもしれないようです。我々は現在のJMenuItemアイテムを持っているし、我々はこのような呼び出しでホットキーを設定します:
menuItem.setAccelerator(getAcceleratorKey(accelerator));
そして、ここでgetAcceleratorKey方法です。
private KeyStroke getAcceleratorKey(int keyCode) {
return KeyStroke.getKeyStroke(
keyCode,
Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),
false);
}
このメソッドは、パラメータとして取るのkeyCodeが唯一のコマンドで押しつのキーもできるようです。だから、どのように私は元に戻すためのコマンドシフトzのような何かをしますか?私は別のクラスを使用する必要がありますか?
解決
KeyStroke.getKeyStroke()のパラメータとして改質剤を取ります。それらの組み合わせは何をしたいあなたを与える必要があります:
KeyStroke.getKeyStroke(keyCode,
java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.META_MASK);
所属していません StackOverflow