咱们发现前两篇文章所造成的坦克,他只能固定一个方向进行挪动
那么对于咱们来说,个别要么应用鼠标,要么应用键盘管制
那么咱们怎么实现这样的形式呢?
实现键盘监听
在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; } }}
这时咱们运行起键盘的↑↓←→ 则能够批改操控坦克圆点的地位了
参考资料
尚学堂:坦克大战(马士兵老师)