>事件监听机制概述
>>包含以下内容:
事件源:awt包或者swing包中的图形界面组件。事件:每一个事件源都有自己的特有的对应事件和共性事件。
监听器:将可以触发某一个事件的动作都已经封装到监听器中,作为一个事件对象。
注意:以上三者在java中已经定义好了,直接获取对象来使用就可以。
事件处理:我们需要自己编程实现的内容。
对事件和事件具体动作的理解:事件是一个能够激发的事情的情况出现了,动过是这个事件的具体内容。
但是,监听器的事件处理是根据某一个事件的具体动作绑定的。也就是说,一个事件对应一个监听器对象,
一个事件的动作,对应一个监听器的具体方法。
>>事件处理流程图
>>事件监听机制的实现
1. 窗口事件的实现
windowListener监听器能够监听的动作,
windowActinvated()窗口被前置
windowClosed()
windowClosing()
windowDeactivated()
windowDeiconified()
windowIconified()
windowOpended()
补充:
1. 添加监听器函数的参数是监听器对象。
2. 监听器对象可以是已经实现的类的对象,也可以是创建一个匿名的对象。
3. 如果用实现接口的方法创建子类,需要复写所有的七个方法。但是WindowAdapter已经复写了所有的方法,只需要继承这个类,只需要复写一个所需要的方法就可以。
>窗体的嵌套和事件的绑定范例
package useAWT;
import java.awt.*;
import java.awt.event.*;
public class RameDemo {
//定义该图形中所需要的组件的引用
private Frame f;
private Button butt;
RameDemo(){
init();
}
//对勒种的一些组件对象进行初始化
public void init(){
f = new Frame("my frame");
//对frame进行基本的设置
f.setBounds(300,100,600,500);
f.setLayout(new FlowLayout());
//对控件进行基本的设置
butt = new Button("my button");
//将控件添加到容器当中
f.add(butt);
//加载所有的已经实现的事件
myEvent();
//显示窗体
f.setVisible(true);
}
//这个函数的目的是将一些事件绑定到一直的组件上边,
//addWindowListener函数的内容是不同类型的事件对象,及将接受到的时间传递给不同的监听器进行处理
//函数内部的内容能够接受到不同的触发
//接受到不同的触发链接到不同 的事件对象(这些对象的类可以在定义新的类,也可以使用匿名类)
//明白这其中的不同成分:监听的事件主体,触发监听的动作,响应动作(负责处理事件的对象)。这三个共同构成一个完整的监听器
private void myEvent(){
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
butt.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.out.println("tuichu anniugande");
System.exit(0);
}
});
}
public static void main(String [] args){
RameDemo fn=new RameDemo();
System.out.println("hello world");
}
}