Java KeyListener在小程序中不工作

Java KeyListener在小程序中不工作,java,applet,awt,keylistener,Java,Applet,Awt,Keylistener,谁能告诉我怎么了?我试着让正方形上下移动。 当我运行小程序时,正方形会在正确的位置创建,但当我按下向上键或向下键时,不会发生任何事情 package pong; import java.applet.Applet; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; import java.awt.event.KeyEvent; import java.awt.event.Ke

谁能告诉我怎么了?我试着让正方形上下移动。 当我运行小程序时,正方形会在正确的位置创建,但当我按下向上键或向下键时,不会发生任何事情

    package pong;

import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

public class pong extends Applet implements KeyListener
{
    private Rectangle rect = null;
    private int key = 0;

    public void init()
    {
        rect = new Rectangle(0,0,10,10);    
        addKeyListener(this);
    }

    public void paint(Graphics g)
    {
        setSize(200,200);
        Graphics2D g2 = (Graphics2D)g;
        g2.fill(rect);
    }

    @Override
    public void keyPressed(KeyEvent e) 
    {
        key = e.getKeyCode();
    }

    public void update()
    {
        if(key == KeyEvent.VK_UP)
        {
            rect.setLocation(rect.x, rect.y - 2);
        }
        else if(key == KeyEvent.VK_DOWN)
        {
            rect.setLocation(rect.x, rect.y + 2);
        }
    }

    @Override
    public void keyReleased(KeyEvent e) {
        // TODO Auto-generated method stub

    }

    @Override
    public void keyTyped(KeyEvent e) {
        // TODO Auto-generated method stub

    }

}

您需要在按下键时调用update方法

 @Override
    public void keyPressed(KeyEvent e) 
    {
        key = e.getKeyCode();
           update();

    }

仅供参考:小程序插件不再受支持,这实际上使小程序不受欢迎。我想从Swing开始(使用密钥绑定API)或JavaFX1)为什么要编写一个applet代码?如果是老师指定的,请参考。2) 为什么要使用AWT?请参阅,了解放弃AWT使用组件而支持Swing的许多好理由。3) 对于Swing,我们通常使用而不是较低级别的
KeyListener