En SWT le puede dar cualquier botón de tecla de atajo simplemente añadiendo &
delante de la letra en la etiqueta del botón. Por ejemplo, si la etiqueta de mi botón es &Play
, puedo activar el botón presionando la letra p
en el teclado.Tecla de método abreviado para JButton sin utilizar la tecla alt
En Swing, se puede añadir una tecla de acceso directo utilizando la propiedad mnemonic
. Sin embargo, debe presionar alt+p
para activar el botón. Esto es realmente más apropiado para atajos de menú. Quiero activar el botón con una letra presionada y sin modificador alternativo.
que he visto este post sobre cómo hacerlo, pero parece absurdamente complicado. ¿Hay alguna forma más fácil de hacer esto?
http://linuxjavaprogrammer.blogspot.com/2008/01/java-swing-jbutton-keyboard-shortcuts.html
actualización : Después @camickr sugerencia, que terminé usando este código. No pude encontrar ningún ejemplo claro y simple en línea, así que con suerte esto ayudará a la gente.
// play is a jButton but can be any component in the window
play.getInputMap(play.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_P, 0), "play");
play.getActionMap().put("play", new AbstractAction() {
public void actionPerformed(ActionEvent e) {
playActionPerformed(e); // some function
}
});