2

2 つのがあり、フォーカスがあるJButtonときはいつでもキーボードの矢印キーで使用できるようにしたいと考えています。JFrame

誰かがこれについて正しい方向に私を向けることができますか?

4

3 に答える 3

3

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);
    }
}
于 2010-04-28T12:20:35.667 に答える
2

キーをインターセプトするには (特定のコンポーネントにフォーカスがあるかどうかを気にせずに) 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();
    }
});
于 2010-04-28T12:18:16.723 に答える
0

さて、あなたが彼らに「矢印キー」の使用を許可したいと言うとき、私はあなたが焦点を移すことができるようにしたいという意味だと思います。この場合は、SwingチュートリアルのFocusサブシステムの使用方法に関するセクションをお読みください。これにEnterキーを使用する方法の例を示します。

于 2010-04-28T15:36:53.323 に答える