Rumah > Java > javaTutorial > teks badan

Bagaimanakah saya boleh menetapkan Pintasan Papan Kekunci kepada Butang di Java?

Patricia Arquette
Lepaskan: 2024-10-24 04:09:02
asal
1026 orang telah melayarinya

How Can I Assign Keyboard Shortcuts to Buttons in Java?

Cara Mengikat Kunci Pintasan pada JButton dalam Java

Di Java, anda boleh menetapkan kekunci pintasan pada butang (cth., mengklik butang Kekunci "Padam" mencetuskan klik butang) dengan melaksanakan Tindakan, mengikatnya pada Ketukan Kekunci, kemudian mengaitkan Tindakan dengan butang.

Untuk berbuat demikian, ikut langkah berikut:

  1. Buat kelas Tindakan yang mentakrifkan tingkah laku apabila kekunci pintasan ditekan, biasanya menggunakan kelas dalaman tanpa nama.
  2. Daftar Tindakan dengan butang menggunakan butang panggilan ke.addActionListener().
  3. Peta kekunci pintasan ke Tindakan menggunakan InputMap dan ActionMap seperti yang ditunjukkan:

    • getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW) mendapatkan semula peta input untuk acara papan kekunci apabila panel butang mempunyai fokus.
    • put(KeyStroke, Object) mengaitkan kekunci yang diingini dengan Action.
    • getActionMap().put(Object, Action) mengaitkan Action dengan kekunci yang dipetakan.

Berikut ialah contoh coretan kod yang melaksanakan langkah ini:

<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>
Salin selepas log masuk

Kod ini mentakrifkan Tindakan yang memasukkan nilai ketukan kekunci ke dalam medan teks apabila dicetuskan. Apabila butang dibuat, ia dipetakan ke kekunci masing-masing pada kedua-dua papan kekunci utama dan berangka. Akibatnya, menekan kekunci yang sepadan (cth., "1" atau "NUMPAD 1") mengaktifkan butang yang berkaitan.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menetapkan Pintasan Papan Kekunci kepada Butang di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan