弄清了事件处理的工作过程后,总结一下AWT事件处理的体系架构。
前面已经提到,Java事件处理采用的是面向对象的方法
有些swing组件会生成其他类型事件的对象,它们都直接扩展与EventObject,而不是AWTEvent
事件对象封装了事件源于监听器彼此通信的事件信息。在必要的时候,可以对传递给监听器对象的事件进行分析。
在按钮例子中,是借助getSourse()和getActionCommand()方法实现对象分析的。
AWT(Abstract Window Toolkit),中文译为抽象窗口工具包
AWT将事件分为底层事件和语义事件。语义事件是表示用户动作的时间。
ActionEvent是一个语义事件。底层事件时形成那些事件的事件
调节滚动条是一个语义事件,但是拖动鼠标时一个底层事件。
对于有些AWT事件类型,java程序员并不实际使用,比如paintEvent对象不会传递给监听器,java程序员不监听绘图事件,如果需要重新绘图,
就需要覆盖paintComponent方法,AWT还生成许多只对系统程序员有用的事件,用于提供表义语言的输入系统以及自动检测机器人等
下面是java.awt.event包中最常用的语义事件类
ActionEvent 按钮点击,菜单选择,选择列表,在文本框中ENTER
AdjustmentEvent 用户调节滚动条
ItemEvent 用户从复选框或者列表中选择一项
常用的5个底层事件是;
KeyEvent 一个按键按下或者释放
MouseEvent 鼠标键被按下,释放,移动或者拖动
MouseWheelEvent鼠标滚轮被转动
FocusEvent 某个组件获得焦点或者失去焦点
WindowEvent 窗口状态被改变
下列接口将监听这些事件
ActionListener
AdjustmentListener
FocusListener
IntemListener
KeyListener
MouseListener
MouseMotionListener
MouseWheelListener’
WindowListener
WindowFocusListener
WindowStateListener
有几个AWT
监听器接口包含多个方法,特们都有一个适配器,在这个类中实现了响应接口中的所有方法,但每一个方法都没有做任何事情(有的接口只有一个方法
,所以就没有必要定义适配器了
适配器类:
FocusAdapter
KeyAdapter
MouseAdapter
MouseMotionAdapter
WindowAdapter
javax.swing.event包中包含了许多专门用于Swing组建的附加事件。