JFrame是Swing中一种比较典型的GUI组件,掌握了其窗口事件的处理可以进而扩展到其他组件,编程思想都是大同小异的。使用事件监听器接口,需要实现该接口的所有抽象方法,而通常只应用一种或几种,全部实现显得很繁琐。于是,对于拥有多个方法的接口可使用事件适配器,由于它提供了空实现,所以只要实现需要的方法即可。
事件处理的过程大致可分为3个步骤:一、确定某组件产生的事件类型;二、提供处理该事件的处理器方法;三、为该组件注册事件监听器。
1、类本身作为事件监听器类:GUI界面类实现监听器接口或继承事件适配器,直接在类中定义事件处理器方法。优点:简洁。缺点:GUI界面类应该主要进行界面初始化,增加事件处理会引起混乱;若继承事件适配器则无法继承其他父类。
2、顶级类:事件监听器类定义成一个顶级类。优点:界面类可继承其他类。缺点:事件监听器类从属于某个GUI界面类,定义成顶级类不利于提高程序的内聚性;顶级类的事件监听器不能自由访问创建GUI界面类中的组件,程序不够简洁。
3、内部类:事件监听器定义成当前类的内部类。优点:可以在类中复用该监听器类;该监听器类可自由访问外部类的所有GUI组件。
4、局部内部类:事件监听器类在当前类的某个方法内定义。
5、匿名内部类:大部分时间监听器只临时用一次,无复用价值,应用最广泛的形式。
6、可复用的局部内部类?
7、JFrame的一种特有形式
8、一种不太常见的形式