【发布时间】:2016-05-25 00:15:13
【问题描述】:
谁能告诉我有什么问题?我试图让广场上下移动。 当我运行小程序时,正方形会在正确的位置创建,但是当我按下 UP 键或 DOWN 键时没有任何反应。
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
}
}
【问题讨论】:
-
仅供参考:不再支持小程序插件,实际上使小程序被弃用。我会考虑从 Swing(并使用键绑定 API)或 JavaFX 开始
-
1) 为什么要编写小程序?如果是老师指定的,请参考Why CS teachers should stop teaching Java applets。 2) 为什么使用 AWT?请参阅this answer 以了解放弃使用支持 Swing 的组件的 AWT 的许多充分理由。 3) 对于 Swing,我们通常使用key bindings 而不是较低级别的
KeyListener。
标签: java applet awt keylistener