咱们发现前两篇文章所造成的坦克,他只能固定一个方向进行挪动

那么对于咱们来说,个别要么应用鼠标,要么应用键盘管制

那么咱们怎么实现这样的形式呢?

实现键盘监听

在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;        }    }}

这时咱们运行起键盘的↑↓←→ 则能够批改操控坦克圆点的地位了

参考资料


尚学堂:坦克大战(马士兵老师)