关于键盘事件

来源:百度知道 编辑:UC知道 时间:2024/05/11 19:34:40
我通过继承JPanel类,重写paintComponent方法,在面板上画图形。
我想通过键盘的方向键来控制图形位置,该如何实现?
比如我点击一下LEFT,面板上的图形向左移动,并重画。
现在是无法实现键盘监听,应该给谁注册监听?
请写出KeyEvent代码,可以加分

//加个线程让它不停repaint();然你按下键盘方向键改变图形的坐标就可以,当然你在事件里repaint();也可以
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Panel;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class DrawTest extends JFrame {
private int x = 50;
private int y = 50;
private Image offScreenImage = null;

@Override
public void paint(Graphics g) {
Color c = g.getColor();
g.setColor(Color.BLACK);
g.fillOval(x, y, 30, 30);
g.setColor(c);

}

public void update(Graphics g) {
if (offScreenImage == null) {
offScreenImage = this.createImage(500, 500);
}
Graphics gOffScreen = offScreenImage.getGraphics();
Color c = gOffScreen.getColor();
gOffScreen.setColor(Color.GREEN);