任务
代码
为窗口创建按键监听器,使得每次按键坦克重画
//键盘监听器
private class keyMonitor extends KeyAdapter{
public void keyPressed(KeyEvent e) {
//获得按键虚拟码
int key = e.getKeyCode();
switch(key) {
case KeyEvent.VK_RIGHT:
if(x < GAME_WIDTH-TANK_WIDTH-10)
x = x + 5;
break;
case KeyEvent.VK_LEFT:
if(x > TANK_WIDTH)
x = x - 5;
break;
case KeyEvent.VK_DOWN:
if(y < GAME_HEIGH-TANK_HEIGH-10)
y = y + 5;
break;
case KeyEvent.VK_UP:
if(y > TANK_HEIGH+10)
y = y - 5;
break;
}
}
}
再把监听器加进 launchJFrame() 方法
//放置监听器
this.addKeyListener(new keyMonitor());
总结
1.由于键盘监听器只为坦克类服务,以内部类形式写出,监听器继承 KeyAdapter 类,实现 keyPressed() 方法,监听按键信息
2.由 getKeyCode 获得按键虚拟码,和 KeyEvent 中的 VK_上下左右进行比较