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?

¿Fue útil?

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