Definir três botões Acelerador Teclas de hot chaves em java (OSX)
-
20-09-2019 - |
Pergunta
Estou tentando alterar algumas teclas quentes no aplicativo Java em que estou wokring e parece que o sistema que estou usando pode não funcionar com combinações de teclas de três botões. Atualmente, temos um item Jmenuitem e definimos a tecla de atalho com uma chamada como esta:
menuItem.setAccelerator(getAcceleratorKey(accelerator));
E aqui está o método GetAcceleratorKey:
private KeyStroke getAcceleratorKey(int keyCode) {
return KeyStroke.getKeyStroke(
keyCode,
Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),
false);
}
Parece que o código de chave que esse método leva como parâmetro pode ser apenas uma tecla pressionada com o comando. Então, como então eu faria algo como a mudança de comando z para desfazer? Eu preciso usar uma classe diferente?
Solução
Keystroke.getKeyStroke () toma modificadores como um parâmetro. Uma combinação deles deve lhe dar o que você deseja:
KeyStroke.getKeyStroke(keyCode,
java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.META_MASK);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow