Установка трех кнопок с акселератором горячих клавиш в Java (OSX)
-
20-09-2019 - |
Вопрос
Я пытаюсь изменить несколько горячих пиков в приложении Java, на котором я нахожусь, и кажется, что система, которую я использую, может не работать с тремя комбинациями ключей кнопок. В настоящее время у нас есть предмет Jmenuitem, и мы установили горячую клавишу с помощью звонка, как это:
menuItem.setAccelerator(getAcceleratorKey(accelerator));
А вот метод getacceleratorkey:
private KeyStroke getAcceleratorKey(int keyCode) {
return KeyStroke.getKeyStroke(
keyCode,
Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),
false);
}
Похоже, что клавиш, который этот метод принимает в виде параметра, может быть только одна нажатая клавиша с помощью команды. Так как же я сделаю что-то вроде командного смены Z для отмены? Мне нужно использовать другой класс?
Решение
Keystroke.getKeyStroke () принимает модификаторы в качестве параметра. Их комбинация должна дать вам то, что вы хотите:
KeyStroke.getKeyStroke(keyCode,
java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.META_MASK);
Не связан с StackOverflow