В SWT вы можете назначить любой кнопке сочетание клавиш, просто добавив &
перед буквой в ярлыке кнопки.Например, если моя метка кнопки &Play
, я могу активировать кнопку, нажав на клавиатуре букву p
.
В Swing вы можете добавить сочетание клавиш, используя свойство mnemonic
.Тем не менее, вам нужно нажать alt+p
, чтобы активировать кнопку.Это действительно наиболее подходит для ярлыков меню.Я хочу активировать кнопку нажатием буквы и без модификатора alt.
Я видел этот пост о том, как это сделать, но он кажется нелепо сложным.Есть ли более простой способ сделать это?
http://linuxjavaprogrammer.blogspot.com/2008/01/java-swing-jbutton-keyboard-shortcuts.html
Обновление: После предложения @camickr я использовал этот код.Я не смог найти ни одного понятного и простого примера в Интернете, поэтому, надеюсь, это поможет людям.
// 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
}
});