目录
1. 基本介绍
java事件处理是采取“委派事件模型”。当事件发生时,产生事件的对象,会把此“信息”传递给“事件的监听者”处理,这里所说的“信息”实际上就是java.awt.event事件类库里某个类所创建的对象,把它称为“事件的对象”。
示意图:
2. 全面介绍
2.1 事件源
是一个产生事件的对象,比如按钮,窗口等。
2.2 事件
是承载事件源状态改变时的对象,比如当键盘事件、鼠标事件、窗口事件等状态改变时,会生成一个事件对象,该对象保存着当前事件很多信息,比如KeyEvent对象含有被按下键的Code值。java.awt.event包和javax.swing.event包中定义了各种事件类型。
2.3 事件类型
①ActionEvent 通常在按下按钮,或双击一个列表项或选中某个菜单时发生
②AdjustmentEvent 当操作一个滚动条时发生
③ComponentEvent 当一个组件隐藏,移动,改变大小时发生
④ContainerEvent 当一个组件从容器中加入或者删除时发生
⑤FocusEvent 当一个组件获得或是失去焦点时发生
⑥ItemEvent 当一个复选框、列表项、选择框、选择菜单被选中时发生
⑦KeyEvent 当从键盘的按键被按下,松开时发生
⑧MouseEvent 当鼠标被拖动,移动,点击,按下…时发生
⑨TextEvent 当文本区和文本域的文本发生改变时发生
⑩WindowEvent 当一个窗口激活、关闭、失效、恢复、最小化…时发生
2.4 事件监听器接口
①当事件源产生一个事件,可以传送给事件监听者处理。
②事件监听者实际上就是一个类,该类实现了某个事件监听器接口,比如前面我们案例中的MyPanle就是一个类,它实现了KeyListener接口,它就可以作为一个事件监听者,对接受到的事件进行处理。
③事件监听器接口有多种,不同的事件监听器接口可以监听不同的事件,一个类可以实现多个监听接口。
④这些接口在java.awt.event包和javax.swing.event包中定义。
3. 示例演示
(以 让小球移动 为例)
(1)为了让小球可以动态移动,将小球左上角的坐标(x,y)设置为变量。
(2)使MyPanel类实现KeyListener接口,KeyListener是监听器,可以监听键盘事件。
(3)实现KeyListener接口的三个方法,根据不同的需求完成对应方法的具体内容编写。
(4)在keyPressed()方法编写移动逻辑:根据用户按下的上下左右键来让小球进行上下左右移动。调用getKeyCode()方法获取用户输入的键值,和使用KeyEvent调用的Java底层设置的上下左右的键值进行比较,进行对应的移动。完成以上操作后,最后需要调用repaint()方法,重绘面板。
(5)在主类的构造器中,调用addKeyListener()方法,使窗口JFrame可以监听mp键盘事件,即 可以监听MyPanel面板发生的键盘事件,就完成了对事件的处理。