ホームページ  >  記事  >  Java  >  Java でボタンにキーボード ショートカットを割り当てるにはどうすればよいですか?

Java でボタンにキーボード ショートカットを割り当てるにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-24 04:09:02940ブラウズ

How Can I Assign Keyboard Shortcuts to Buttons in Java?

Java でショートカット キーを JButton にバインドする方法

Java では、ショートカット キーをボタンに割り当てることができます (例: 「削除」キーは、アクションを実装し、それを KeyStroke にバインドして、アクションをボタンに関連付けることにより、ボタンのクリックをトリガーします。

これを行うには、次の手順に従います。

  1. ショートカット キーが押されたときの動作を定義する Action クラスを作成します。通常は匿名の内部クラスを使用します。
  2. button.addActionListener() の呼び出しを使用して、ボタンにアクションを登録します。
  3. 次に示すように、InputMap と ActionMap を使用してショートカット キーをアクションにマップします。

    • getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW) は、ボタン パネルにフォーカスがあるときにキーボード イベントの入力マップを取得します。
    • put(KeyStroke, Object) は、目的のキーをアクションに関連付けます。
    • getActionMap().put(Object, Action) は、アクションをマップされたキーに関連付けます。

これらの手順を実装するコード スニペットの例を次に示します。

<code class="java">public class CalculatorPanel extends JPanel {
    // ... (code removed for brevity)

    for (int i = 0; i < 10; i++) {
        String text = String.valueOf(i);
        JButton button = new JButton(text);
        // ... (code removed for brevity)

        InputMap inputMap = buttonPanel.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
        inputMap.put(KeyStroke.getKeyStroke(text), text);
        inputMap.put(KeyStroke.getKeyStroke("NUMPAD" + text), text);
        buttonPanel.getActionMap().put(text, numberAction);
    }
}</code>

このコードは、トリガーされたときにキーストローク値をテキスト フィールドに挿入するアクションを定義します。ボタンが作成されると、メイン キーパッドとテンキーパッドの両方のそれぞれのキーにマッピングされます。その結果、対応するキー (「1」または「テンキー 1」など) を押すと、関連付けられたボタンがアクティブになります。

以上がJava でボタンにキーボード ショートカットを割り当てるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。