Configuración de tres botones de aceleración teclas de acceso rápido clave en Java (OSX)
-
20-09-2019 - |
Pregunta
Estoy tratando de cambiar un par de teclas de acceso rápido en la aplicación java que estoy en wokring y parece que el sistema que uso puede no funcionar con tres botones combinaciones de teclas. Actualmente tenemos un elemento JMenuItem y establecemos la tecla de acceso directo con una llamada como ésta:
menuItem.setAccelerator(getAcceleratorKey(accelerator));
Y aquí está el método getAcceleratorKey:
private KeyStroke getAcceleratorKey(int keyCode) {
return KeyStroke.getKeyStroke(
keyCode,
Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),
false);
}
Parece que el código clave que este método toma como parámetro sólo puede ser una tecla pulsada con el comando. Entonces, ¿cómo se iba a hacer algo así como comandos de desplazamiento z para deshacer? ¿Es necesario utilizar una clase diferente?
Solución
KeyStroke.getKeyStroke () toma modificadores como un parámetro. Una combinación de ellos debe darle lo que quiere:
KeyStroke.getKeyStroke(keyCode,
java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.META_MASK);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow