Java - добавить ускоритель в JMenuItem
Я хочу установить ускоритель на JMenuItem.
Прямо сейчас я устанавливаю это так
openFile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.CTRL_MASK));
и это работает, но я не хочу Ctrl + O в качестве ускорителя. Я хочу "пробел" в качестве ускорителя, но я не нашел никакого метода, с помощью которого я мог бы генерировать KeyStroke, соответствующий "пробелу".
KeyStroke.getStroke()
либо принимает символ или (int, int). Я не нашел ни одного символа, соответствующего космосу.
2 ответа
Большинство делегатов пользовательского интерфейса отображают KeyEvent.VK_SPACE
ускоритель, используя что-то вроде METRICAL TETRASEME
: ⏘ (U+23D8
). Например, Action
может включать эти строки:
static final int MASK = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, MASK));
... не нашел ни одного символа, соответствующего пробелу.
KeyEvent.VK_SPACE
Я не удивлюсь, если Swing проигнорирует это, так как ' '
это необычный и трудно видимый ускоритель.