11.5.3 事件适配器
11.5.3 事件适配器
事件适配器的作用
事件适配器是监听器接口的空实现:
事件适配器实现了监听器接口,并为该接口里的每个方法都提供了实现,这种实现是一种空实现(方法体内没有任何代码的实现)。
当需要创建监听器时,可以通过继承事件适配器,而不是实现监听器接口。因为事件适配器已经为监听器接口的每个方法提供了空实现,所以程序自己的监听器无须实现监听器接口里的每个方法,只需要重写自己感兴趣的方法,从而可以简化事件监听器的实现类代码。
只有一个方法的监听器接口直接重写方法即可
如果某个监听器接口只有一个方法,则该监听器接口就无须提供适配器,因为该接口对应的监听器别无选择,只能重写该方法!如果不重写该方法,就没有必要实现该监听器。
表11.2 监听器接口和事件适配器对应表
监听器接口 | 事件适配器 |
---|---|
ContainerListener |
ContainerAdapter |
MouseListener |
MouseAdapter |
FocusListener |
FocusAdapter |
MouseMotionListener |
MouseMotionAdapter |
ComponentListener |
ComponentAdapter |
WindowListener |
WindowAdapter |
KeyListener |
KeyAdapter |
虽然表11.2中只列出了常用的监听器接口对应的事件适配器,实际上,所有包含多个方法的监听器接口都有对应的事件适配器,包括Swing
中的监听器接口也是如此。
从表11.2中可以看出,所有包含多个方法的监听器接口都有一个对应的适配器,但只包含一个方法的监听器接口则没有对应的适配器。
程序示例
下面程序通过事件适配器来创建事件监听器
1 | import java.awt.*; |
从上面程序中可以看出,窗口监听器继承WindowAdapter
事件适配器,只需要重写windowClosing
方法即可,这样当用户单击关闭按钮“×”时退出程序。