java,我添加的键盘监听类为什么按键没有反应?求大神帮忙看看

public void NEXT() {
Graphics g = null;
if(grade>=GUANQIA) {
DUIHUA("恭喜你完成所有关卡!");
}
else {
grade++;
paintComponent(g);
}
}
private void DUIHUA(String str) {
JOptionPane.showMessageDialog(null, str,"提示",JOptionPane.ERROR_MESSAGE);
}
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_UP) YIDONG(SHANG);DUIHUA("666");
if(e.getKeyCode()==KeyEvent.VK_DOWN) YIDONG(XIA);DUIHUA("666");
if(e.getKeyCode()==KeyEvent.VK_LEFT) YIDONG(ZUO);DUIHUA("666");
if(e.getKeyCode()==KeyEvent.VK_RIGHT) YIDONG(YOU);DUIHUA("666");
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) {
if(map[grade-1][x][y]==19||map[grade-1][x][y]==39) return false;
return true;
}
private void YIDONG (int event) {
switch(event) {
case ZUO:
if(GUIZE(x-1,y)) x--;
FANG =ZUO;
break;
case YOU:
if(GUIZE(x+1,y)) x++;
FANG =YOU;
break;
case SHANG:
if(GUIZE(x,y-1)) y--;
FANG =SHANG;
break;
case XIA:
if(GUIZE(x,y+1)) y++;
FANG =XIA;
break;
default: break;
}
}
private class AnimationThread extends Thread{
public void run() {
while(true){
if(count==1) count=0;
else if(count==0) count=1;
repaint();
try {
Thread.sleep(300);
}catch(InterruptedException e) {
e.printStackTrace();
}
}
}
}

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);
panel.addKeyListener( panel);
panel.addMouseMotionListener(panel);
mi.pack();
}
}

能获取焦点的组件,才能侦听键盘事件

~~~~~~~~~~~~~~~追问

我下面有一个获取焦点的组件啊 你看看

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答