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