Estoy tratando de hacer funcionar JavaFX Mnemonic. Tengo un botón en la escena y lo que quiero lograr es disparar este evento de botón presionando Ctrl + S. Aquí es una sceleton código: mnemonicParsingUsando JavaFX 2.2 Mnemónico (y aceleradores)
@FXML
public Button btnFirst;
btnFirst.getScene().addMnemonic(new Mnemonic(btnFirst,
new KeyCodeCombination(KeyCode.S, KeyCombination.CONTROL_DOWN)));
de Button es falsa. (Bueno, al intentar hacer esto, intenté establecerlo en verdadero, pero sin resultado). La documentación de JavaFX establece que cuando un Mnemónico se registra en una Escena y KeyCombination no llega a la Escena, entonces el Nodo de destino recibirá un ActionEvent. Pero esto no funciona, probablemente, estoy haciendo mal ...
Puedo usar el mnemónico del botón estándar (estableciendo mnemonicParsing en verdadero y prefijo la letra 'F' por el carácter de subrayado). Pero de esta manera el usuario tiene que usar la tecla Alt, que trae un comportamiento extraño en los navegadores con la barra de menú (si la aplicación está integrada en la página web que el menú del navegador activado después del evento del botón de disparo presionando Alt + S). Además, la forma estándar hace que sea imposible hacer accesos directos como Ctrl + Shift + F3 y así sucesivamente.
Entonces, si hay alguna forma de hacerlo funcionar?
jewelsea, gracias yo tú Tienes toda la razón, los aceleradores son mi caso de uso. Pensé equivocadamente que los aceleradores deben estar conectados a los elementos del menú. Gracias por tu lección – bes67
Nota: prefiera "acceso directo" a "control" (Windows) o "meta" (Mac) para mantener la plataforma independiente de la aplicación. – Puce
Gracias Puce, es bueno usar 'SHORTCUT_DOWN' en lugar de' CONTROL_DOWN'. Actualicé la respuesta para incluir esta recomendación. – jewelsea