日期:2014-05-20  浏览次数:20669 次

请教:为什么不响应键盘事件呢
public void keyPressed(KeyEvent e) 
  {  
  Person man=(Person)e.getSource(); // 返回事件源
  if(e.getKeyCode()==KeyEvent.VK_KP_DOWN) // 判断是否按下了“↓”键
  { 
  goDown(man); 
  }
  if(e.getKeyCode()==KeyEvent.VK_KP_UP) // 判断是否按下了“↑”键
  { 
  goUp(man);
  }
  if(e.getKeyCode()==KeyEvent.VK_KP_LEFT) // 判断是否按下了“←”键
  { 
  goLeft(man);
  }
  if(e.getKeyCode()==KeyEvent.VK_KP_RIGHT) // 判断是否按下了“→”键
  { 
  goRight(man);  
  }
  }
进入调试状态 发现keyPressed方法执行是执行了,但if后面的语句都没执行,莫非if的条件写的不对吗?应该怎么写呢?

------解决方案--------------------
Java code

public void keyPressed(KeyEvent e) 
  {  
      Person man=(Person)e.getSource();      // 返回事件源
       int keyCode=e.getKeyCode(); 
      if(e.getKeyCode()==KeyEvent.VK_KP_DOWN)              // 判断是否按下了“↓”键 
        { 
            goDown(man); 
        } 
      if(e.getKeyCode()==KeyEvent.VK_KP_UP)              // 判断是否按下了“↑”键 
        { 
            goUp(man); 
        } 
      if(e.getKeyCode()==KeyEvent.VK_KP_LEFT)              // 判断是否按下了“←”键 
        { 
            goLeft(man); 
        } 
      if(keyCode==KeyEvent.VK_RIGHT)                // 判断是否按下了“→”键,static int VK_RIGHT 
          用于非数字键盘向右方向键的常量, 其他的你改一下试试。
      { 
          goRight(man);    
      } 
  }