有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java KeyListener和boolean不起作用

import java.awt.Robot;
import java.awt.event.KeyEvent;

public class Main {
    static boolean check = false;
    static boolean boom = true;

    public static void main(String[] args) throws Exception{
        do{
        if(check == true){
            Robot r = new Robot();
            r.delay(1000);
            r.keyPress(KeyEvent.VK_DECIMAL);
            r.keyRelease(KeyEvent.VK_DECIMAL);
            r.keyPress(KeyEvent.VK_M);
            r.keyRelease(KeyEvent.VK_M);
            r.keyPress(KeyEvent.VK_E);
            r.keyRelease(KeyEvent.VK_E);
            r.keyPress(KeyEvent.VK_N);
            r.keyRelease(KeyEvent.VK_N);
            r.keyPress(KeyEvent.VK_U);
            r.keyRelease(KeyEvent.VK_U);
            r.keyPress(KeyEvent.VK_ENTER);
            r.keyRelease(KeyEvent.VK_ENTER);
        }
        }while(boom == true);
    }

    public void keyPressed(KeyEvent e){
        int keyCode = e.getKeyCode();
        if(keyCode == KeyEvent.VK_F9){
            check = true;
            boom = true;
        }
        if(keyCode == KeyEvent.VK_F11){
            check = false;
            boom = false;
        }
    }
}

这是我的代码,我希望它像这样工作: 按F9键时,它应该开始写入。菜单,按F11键时应停止。 有什么帮助吗


共 (1) 个答案

  1. # 1 楼答案

    没有可供KeyListener监听的GUI组件。KeyListener要求将它们添加到渲染GUI中的组件中,并且被监听的组件具有焦点。你的应用程序没有这些功能。我甚至没有在代码中看到KeyListener对象

    如果您想创建一个侦听关键事件的GUI,请考虑学习如何在Swing tutorials上创建java Swing GUI,然后考虑使用Key Bindings代替低级侦听器,例如KEKListInter。p>

    另一方面,如果您希望创建一个没有GUI的通用键盘记录程序,那么我建议您不要使用Java,而是使用其他语言,以便与操作系统进行更紧密的集成