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?

Foi útil?

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
scroll top