首頁 >Java >java教程 >如何為 Java 中的按鈕指派鍵盤快捷鍵?

如何為 Java 中的按鈕指派鍵盤快捷鍵?

Patricia Arquette
Patricia Arquette原創
2024-10-24 04:09:021031瀏覽

How Can I Assign Keyboard Shortcuts to Buttons in Java?

如何在Java 中將快捷鍵綁定到JButton

在Java 中,您可以為按鈕分配快捷鍵(例如,單組擊「刪除」鍵觸發按鈕點擊),方法是實現一個操作,將其綁定到KeyStroke,然後將操作與按鈕關聯起來。

為此,請按照以下步驟操作:

  1. 建立一個 Action 類,定義按下快速鍵時的行為,通常使用匿名內部類別。
  2. 使用呼叫 button.addActionListener() 向按鈕註冊 Action。
  3. 使用InputMap 和ActionMap 將快速鍵對應到Action,如下所示:

    • 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”或“NUMPAD 1”)會啟動關聯的按鈕。

以上是如何為 Java 中的按鈕指派鍵盤快捷鍵?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn