簡體   English   中英

Java:KeyListener不起作用

[英]Java: KeyListener Not working

我對Java還是很陌生,到目前為止,我已經完全自學了自我。

現在,我試圖將KeyListener添加到我的JFrame類中,我不知道自己在做什么錯,需要一些幫助。 歡迎其他任何提示。

我的JFrame類:

import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.*;

public class TestJavaFrame implements ActionListener, KeyListener {
    private static JFrame frame = new JFrame();

    // Componenets
    JLabel timeinmslabel = new JLabel("Enter the time in miliseconds:");

    JTextField timeinms = new JTextField();

    JRadioButton checkBox = new JRadioButton();
    JRadioButton checkBox2 = new JRadioButton();

    private boolean amountoftimes = false;

    public TestJavaFrame(String windowname) {
        frame.setName(windowname);
        frame.setResizable(true);
        frame.setSize(900, 500);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocation(150, 50);

        // JPanel
        JPanel panel = new JPanel();
        panel.setLayout(null);
        panel.setBounds(frame.getBounds());

        // Bounds for components
        timeinmslabel.setBounds((int) (frame.getBounds().getX() / 2), 125, 200, 25);
        timeinms.setBounds((int) (frame.getBounds().getX() / 2 + 185), 125, 200, 25);
        checkBox.setBounds((int) (frame.getBounds().getX() / 2 + 185), 40, 200, 25);
        checkBox2.setBounds((int) (frame.getBounds().getX() / 2 + 185), 70, 200, 25);

        // Action Listeners
        checkBox.addActionListener(this);
        frame.addKeyListener(this);

        // edit components
        checkBox.setText("Use clicked amount of times.");

        // add components
        panel.add(timeinmslabel);
        panel.add(timeinms);
        panel.add(checkBox);
        panel.add(checkBox2);
        frame.add(panel);

        frame.setVisible(true);

    }

    public void actionPerformed(ActionEvent e) {
        System.out.println(e);
    }

    @Override
    public void keyPressed(KeyEvent e) {
        System.out.println(e.getKeyChar());
    }

    @Override
    public void keyReleased(KeyEvent e) {
        System.out.println(e.getKeyChar());
    }

    @Override
    public void keyTyped(KeyEvent e) {
        System.out.println(e.getKeyChar());
    }
}

如果您需要我的主工具,我可以很好地發布它,但是現在要做的就是創建此gui。

因此,當用戶按下特定鍵時,它將停止自動點擊器

是的,您可以將按鍵綁定添加到面板中。

更好的方法是為應用程序的各種Actions支持創建菜單欄。 然后,您可以使用菜單項來啟動/停止答題器。 創建菜單項時,可以將加速器分配給菜單項,菜單項將自動為您創建按鍵綁定。

這是一個更好的解決方案,因為“鍵綁定”是自記錄的,因為它是菜單項的一部分。

閱讀Swing教程中有關如何使用菜單的部分, 獲取更多信息和工作示例,以開始使用。

正如我說的,我想在這里學習。

保留所有Swing基礎知識到本教程的鏈接。 也有關於“鍵綁定”和“如何使用動作”的部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM