Key Listener无法正常工作

时间:2012-06-14 20:03:27

标签: java applet keylistener event-listener

 public void paint (Graphics g)
{
    bufferGraphics.setColor (Color.black);
    bufferGraphics.clearRect (0, 0, dim.width, dim.width);
    while (input != KeyEvent.VK_SPACE)
    {
        bufferGraphics.fillRect (0, 0, dim.width, dim.height);
    }

    bufferGraphics.drawImage (track, 0, 0, dim.width, dim.height, this);
    bufferGraphics.setFont (new Font ("Calibri", Font.PLAIN, 25));
    bufferGraphics.drawString ("Level: " + level, 30, 30);
    bufferGraphics.drawImage (car, 620, myCarY, 70, 120, this);
    bufferGraphics.drawImage (opponent, 415, oppCarY, 70, 120, this);
    move ();

这是现在的代码。执行时,我得到一个甚至无法关闭的冻结空白窗口。

1 个答案:

答案 0 :(得分:1)

您的问题出在您的if语句中。

if(run = false)

永远不会执行,因为赋值返回指定的值(例如false)。

您需要将=更改为==

您可能还想将无限循环更改为while循环,例如

while(input != KeyEvent.VK_SPACE) {
}

还要确保将KeyListener添加到您的班级(在ctor中)

addKeyListener(new MyKeyListener())

我刚刚测试了代码,但它确实有效。