咱们发现前两篇文章所造成的坦克,他只能固定一个方向进行挪动
那么对于咱们来说,个别要么应用鼠标,要么应用键盘管制
那么咱们怎么实现这样的形式呢?
实现键盘监听
在 java 中咱们应用键盘监听的话有两种形式:接口、抽象类
接口用于接管键盘事件(击键)的侦听器。
若解决键盘事件的类实现此接口(及需实现蕴含的所有办法),即便不须要
若解决键盘事件的类继承形象 KeyAdapter
类(则能够仅重写有用的办法)
public void keyReleased(KeyEvent e)
开释某个键时调用此办法。public void keyPressed(KeyEvent e)
按下某个键时调用此办法。public void keyTyped(KeyEvent e)
键入某个键时调用此办法。
咱们抉择外部类实现键盘按下的形式进行监听测试,同时将监听器增加进来
// 继承抽象类实现键盘监听
private class KeyMonitor extends KeyAdapter{
@Override
public void keyPressed(KeyEvent e) {System.out.println("ok");
}
}
// 定义窗口办法
public void lauchFrame() {
// 省略其余关键性代码.....
// 增加监听器
this.addKeyListener(new KeyMonitor());
}
运行 main 办法,同时按下键盘看看是否有输入后果,测试胜利
若咱们想只应用上下左右键管制坦克进行上下左右方向的管制
则咱们须要先获取到按下的键盘 key 编码,进行匹配
// 继承抽象类实现键盘监听
private class KeyMonitor extends KeyAdapter {
@Override
public void keyPressed(KeyEvent e) {int key = e.getKeyCode();
switch (key) {
case KeyEvent.VK_LEFT:
x -= 5;
break;
case KeyEvent.VK_UP:
y -= 5;
break;
case KeyEvent.VK_RIGHT:
x += 5;
break;
case KeyEvent.VK_DOWN:
y += 5;
break;
}
}
}
这时咱们运行起键盘的↑↓←→ 则能够批改操控坦克圆点的地位了
参考资料
尚学堂:坦克大战(马士兵老师)