達成したい内容に応じて、キー バインディングAPI を使用できます。たとえば、...
InputMap im = getInputMap(WHEN_IN_FOCUSED_WINDOW);
ActionMap am = getActionMap();
im.put(KeyStroke.getKeyStroke(KeyEvent.VK_A, 0), "Press.A");
am.put("Press.A", new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
gameConsole.append("\n\nCommands: \n ==========");
commands();
}
});
これの素晴らしいところは、再利用できることAction
です...
例えば...
public class ConsoleAction extends AbstractAction {
public ConsoleAction() {
putValue(NAME, "Text of button");
putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_A, 0));
putValue(MNEMONIC_KEY, KeyEvent.VK_A);
}
public void actionPerformed(ActionEvent e) {
gameConsole.append("\n\nCommands: \n ==========");
commands();
}
}
その後...
ConsoleAction consoleAction = new ConsoleAction();
JButton consoleButton = new JButton(consoleAction);
//...
am.put(consoleAction);