Java 如何播放键盘事件

Java 如何播放键盘事件,java,keyboard,action,listener,Java,Keyboard,Action,Listener,如果上面写着**spacebarpressed**,我想发布一个事件: public static void main(String[] args) throws IOException, AWTException{ final Robot robot = new Robot(); robot.delay(2000); while(true) { if( **spacebarpressed** ) { robot.mo

如果上面写着
**spacebarpressed**
,我想发布一个事件:

public static void main(String[] args) throws IOException, AWTException{

    final Robot robot = new Robot();

    robot.delay(2000);

    while(true)
    {
        if( **spacebarpressed** ) {
            robot.mousePress(InputEvent.BUTTON1_MASK);
            robot.mouseRelease(InputEvent.BUTTON1_MASK);

            robot.delay(50);
        }
        else {
            robot.delay(50);
        }
    }
}

是否要检查是否按了空格键?如果是这样的话,您需要一个内部私有类来实现
KeyListener
,但是您需要将它连接到
JFrame
。。。我不知道还有别的办法

private class Key
    implements KeyListener
{
    private boolean spacebarPressed = false;

    @Override
    public void keyTyped(KeyEvent e)
    {
    }

    @Override
    public void keyPressed(KeyEvent e)
    {
        if(e.getKeyCode() == KeyEvent.VK_SPACE)
        {
            spacebarPressed = true;
        }
    }

    @Override
    public void keyReleased(KeyEvent e)
    {
        if(e.getKeyCode() == KeyEvent.VK_SPACE)
        {
            spacebarPressed = false;
        }
    }

    public boolean isSpacebarPressed()
    {
        return spacebarPressed;
    }
}

然后在while循环中调用
isSpacebarPressed()
进行检查。

当我将代码子类放在我的类声明下,然后使用“while(isSpacebarPressed())”时,它说我需要创建方法isSpacebarPressed,我能做什么?确保创建它的实例。。。“Key keyObject=new Key()”,然后可以使用“keyObject.isSpacebarPressed()”。但在此之前,您需要将其连接到JFrame,正如我所看到的,您的主要方法引发了AWTException,因此您必须使用UI,因此将该实例连接到您的窗口(“jframeObject.addKeyListener(keyObject);”)以使其更新。我想让keyObject成为静态的,我搞砸了什么?