坦克大战的移动
一.监听器(事件的监听)
上一张中学了关于泛型的概念和作用,知道了是为了解决传输中可能出现类型不同导致的编译错误,用来指定传输的类型同时解决了类型强转的重复性
这次又了解到了另一个知识,事件的监听,执行一个功能的时候,我们是去调用它的方法。程序员还能知道具体方法,其他人就不好了解了,那么就用到了事件的监听
1.监听器的概念
是指专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生变化时,立即采取相应的行动。
2.监听器的用法
它是实现一个接口KeyListener
就拿现在做的一个游戏坦克大战来说,坦克怎么实现随着按键的输入做出不同的动作,上下左右等,就是依靠监听器的实现
public class MyPanel extends JPanel implements KeyListener
这个接口会实现这三个方法
//有字符输出的时候触发
@Override
public void keyTyped(KeyEvent e) {
}
//当某个键按下的时候触发
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_W) {
//改变坦克方向
hero.setDirection(0);
hero.moveUp();
} else if (e.getKeyCode() == KeyEvent.VK_D) {
//改变坦克方向
hero.setDirection(1);
hero.moveRight();
} else if (e.getKeyCode() == KeyEvent.VK_S) {
//改变坦克方向
hero.setDirection(2);
hero.moveDown();
} else if (e.getKeyCode() == KeyEvent.VK_A) {
//改变坦克方向
hero.setDirection(3);
hero.moveLeft();
}
this.paint(getGraphics());
}
//当某个键释放(松开)的时候触发
@Override
public void keyReleased(KeyEvent e) {
}
通过在这方法中绑定方法,实现按键调用功能
当然,这只是监听的最初表现,在javaweb中,还有Java 创建事件(Event)、事件监听器(EventListener)、事件发布(publishEvent)
一系列流程!!!