JAVA12

来源:互联网 发布:完美丈夫网络剧 编辑:程序博客网 时间:2024/06/03 18:22
事件处理

Java事件处理中涉及到的三个对象:

◆事件源(Event Source): 事件发生的场所。就是各个组件。例如按钮,窗口,菜单等…….

◆事件(Event)事件封装了GUI组件上发生的特定事件(其实就是用户做出的一次操作,例如:点击按钮,关闭窗口)。如果程序员要获得GUI组件上发生的事件的相关信息,就通过Event对象取得。

◆事件监听器(Event Listener)负责监听事件源所发生的事件,并对各个事件做出相应的处理

 

            当用户按下一个按钮,或者单击某个菜单项,或单击窗口右上角的状态按钮时,这些动作就会激发一个相应的事件,该事件会由AWT封装Event对象,该事件就会触发事件源上注册的事件监听器(特殊的Java对象),事件监听器会调用对应的事件处理器(事件监听器中的某方法)来做出响应。

 

            AWT的事件处理机制是一种委派式(Delegation)事件处理方式:普通组件(事件源)将整个事件委托给特点的对象(事件监听器),当该事件源发生指定的事件时,就通知所委托的事件监听器,由事件监听器来处理这个事件。(事件监听器会调用自己里面的事件处理器来处理)。

 

            每个组件均可以针对特点的事件指定一个或多个事件监听器对象,每个事件监听器也可以监听一个或多个事件源。因为同一个事件源上可能发生多种事件,委派式事件处理方式可以把事件源上所有可能发生的事件分别授权给不同的事件监听器来处理;同时也可以让一类事件都使用同一事件监听器来处理。

 

Java中想要处理某个事件,必须要实现事件对于的事件监听器接口,实现监听接口主要有如下四种方式:

◆内部类实现监听

◆匿名内部类实现监听

◆类本身作为事件监听器实现监听(容器类)

◆顶级类实现监听

案例一:使用内部类实现监听

 }

案例二:使用匿名内部类实现监听

案例三: 类本身作为事件监听器实现监听

案例四: 顶级类实现监听

 

案例五:多个按钮监听



 

 

案例六:完成窗口事件(点击X时关闭窗口)

1实现WindowListener接口

2windowClosing方法中添加System.exit(0)

3frame窗口绑定窗口事件

案例七:使用适配器完成监听

 

事件适配器是对事件监听器的空实现:事件适配器实现了监听器接口,并为该接口中的所有方法都提供了实现,这种实现是空实现(方法体中没有任何代码)。当我们需要完成事件监听时可以不用直接去实现监听器接口,而选择继承事件适配器,这样就不用实现接口中所有方法,而是选择重写适配器中自己感兴趣的方法。从而达到简化代码的目的。

//适配器完成窗口关闭  匿名内部类

this.addWindowListener(new WindowAdapter(){

       public void windowClosing(WindowEvent arg0) {

           System.exit(0);

       }

});//注册监听

 

//内部类

this.addWindowListener(new MyListener());//注册监听

class MyListenerextends WindowAdapter{

       public void windowClosing(WindowEvent arg0) {

           System.exit(0);

       }

}