Java写了一个小游戏,但是用了键盘监听器按键没反应,请大神们帮忙看看
package RGP走迷宫;
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
public class MyPanel extends JPanel implements KeyListener,MouseMotionListener{
private static final long serialVersionUID=1L;
private static final int CHANG=480;
private static final int KUAN=480;
private static final int HANG=15;
private static final int LIE=15;
private static final int XIANGSU=32;
private static final int ZUO=0;
private static final int YOU=1;
private static final int SHANG=2;
private static final int XIA=3;
private static final int GUANQIA=2;
private static int grade;
private static int map[][][]= {..
private Image DIImage,DI11Image,DI12Image,DI13Image,DI14Image,DI21Image,DI22Image,
DI23Image,DI24Image,DI31Image,DI32Image,DI33Image,DI34Image,DI41Image,DI42Image;
private Image QIANGImage;
private Image RENImage;
private Image CHUImage;
private Image NEIImage;
private int x,y;
private int count;
private Thread xian;
private int FANG;
public MyPanel() {
setPreferredSize(new Dimension(CHANG,KUAN));
loadImage();
FANG=XIA;
x=1;
y=1;
grade=1;
count=0;
setFocusable(true);
addKeyListener(this);
xian=new Thread(new AnimationThread());
xian.start();
this.addKeyListener(this);
}
public void paintComponent(Graphics g) {..
private void RENWU(Graphics g) {..
private void loadImage() {..
private void DITU(Graphics g) {..
public void NEXT() {..
private void DUIHUA(String str) {..
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_UP) YIDONG(SHANG);
if(e.getKeyCode()==KeyEvent.VK_DOWN) YIDONG(XIA);
if(e.getKeyCode()==KeyEvent.VK_LEFT) YIDONG(ZUO);
if(e.getKeyCode()==KeyEvent.VK_RIGHT) YIDONG(YOU);
repaint();
if(map[grade-1][x][y]==2) {
if(grade==GUANQIA) {
String str="恭喜通过第"+grade+"关!\n是否进入下一关?";
int type=JOptionPane.YES_NO_OPTION;
int i=0;
i=JOptionPane.showConfirmDialog(null, str,"过关",type);
if(i==1) System.exit(0);
else if(i==0) NEXT();
}
}
}
private boolean GUIZE(int x,int y) {..
private void YIDONG (int event) {..
private class AnimationThread extends Thread{..
public void keyReleased(KeyEvent e) {..
public void keyTyped(KeyEvent e) {..
public void mouseDragged(MouseEvent arg0) {..
public void mouseMoved(MouseEvent arg0) {..
public static void main(String[] args) {
JFrame mi = new JFrame();
mi.setTitle("RGP走迷宫");
mi.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE ) ;
mi.setVisible(true);
MyPanel panel=new MyPanel();
Container contentPane=mi.getContentPane();
contentPane.add(panel);
panel.setFocusable(true);
mi.pack();
}
}