KeyListener和布尔值不起作用

时间:2013-08-11 14:39:25

标签: java boolean awt keylistener awtrobot

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时它应该开始写.menu并且当按F11时它应该停止。 任何帮助?

1 个答案:

答案 0 :(得分:3)

您没有可供KeyListener监听的GUI组件。 KeyListeners要求将它们添加到呈现的GUI中的组件中,并且正在侦听的组件具有焦点。你的应用程序没有。我甚至没有在你的代码中的任何地方看到KeyListener对象。

如果要创建侦听关键事件的GUI,请考虑学习如何在Swing tutorials创建Java Swing GUI,然后考虑使用Key Bindings代替低级侦听器例如KeyListener。

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