2 つのがあり、フォーカスがあるJButton
ときはいつでもキーボードの矢印キーで使用できるようにしたいと考えています。JFrame
誰かがこれについて正しい方向に私を向けることができますか?
Swing のActionデモから変更。
ボタンの初期化:
// Sets the mnemonic to down, with no hint display
JButton down = new JButton(new DownAction("Down", null, "This is the down button", new Integer(KeyEvent.VK_DOWN));
アクション:
class DownAction extends AbstractAction {
public DownAction(String text, ImageIcon icon,
String desc, Integer mnemonic) {
super(text, icon);
putValue(SHORT_DESCRIPTION, desc);
putValue(MNEMONIC_KEY, mnemonic);
}
public void actionPerformed(ActionEvent e) {
displayResult("Action for first button/menu item", e);
}
}
キーをインターセプトするには (特定のコンポーネントにフォーカスがあるかどうかを気にせずに) InputMap
、. たとえば、次を読んでください。
http://java.sun.com/docs/books/tutorial/uiswing/misc/keybinding.html
WHEN_IN_FOCUSED_WINDOW
そして、定数に行きます。
問題のボタンが単に単一のメソッドを呼び出す場合を除き、「ボタンが行うこと」を実行する最善の方法は次のとおりです。
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
((AbstractButton) c).doClick();
}
});
さて、あなたが彼らに「矢印キー」の使用を許可したいと言うとき、私はあなたが焦点を移すことができるようにしたいという意味だと思います。この場合は、SwingチュートリアルのFocusサブシステムの使用方法に関するセクションをお読みください。これにEnterキーを使用する方法の例を示します。