Java学习——56.事件处理
1、事件
事件(event)是指一个状态的改变,或者一个活动的产生。
2、事件源
产生事件的组件称为事件源,比如,单击一个按钮,那么此按钮就是事件源。双击某张图片,此张图片就是事件源。关闭一个窗口,这个窗口就是事件源。
3、事件类
Java将事件封装成事件类,在java.awt.event包中。
4、事件监听接口
Java为每个事件类定义一个事件监听接口,在接口中约定了事件的处理方法。
例:ActionListener是动作事件监听器接口,声明了一个抽象方法actionPerformed(),在此方法中是事件的处理方法。方法的参数是一个动作事件类ActionEvent的对象。
public interface ActionListener extendsEventListener{
public abstract void actionPerformed(ActionEvent ev);
}
如果声明实现此ActionListener接口,必须实现此方法。
5、注册事件监听器对象
一个组件能够响应的事件是固定的,比如按钮可以响应动作事件,那如何表示?
Java在各组件类中声明了组件注册事件监听器方法,表示组件要响应该事件。
比如在Button类中有注册或取消动作事件监听器的方法:
public void addActionListener(ActionListener listener)//注册动作事件监听器
public void removeActionListener(ActionListener listener)//取消动作事件监听器
一个组件如果注册了一个事件监听器对象,表明该组件声明要响应指定事件。
6、例
以按钮为例,单击按钮,给文本行赋值为“张熹熹”。
import java.awt.*;
import java.awt.event.*;
public class event_learn extends Frame implements ActionListener{//继承自框架,实现动作事件接口
TextField t;
public event_learn(){
super("按钮事件");
this.setVisible(true);
this.setBounds(200,200,200,100);
Button b=new Button("单击");
this.add(b,"North");
b.addActionListener(this);//注册动作事件监听器
t=new TextField("hello",10);
this.add(t);
this.addWindowListener(new WindowAdapter() {
publicvoid windowClosing(WindowEvent e) {
System.exit(0);
}
});//关闭窗口
}
publicvoid actionPerformed(ActionEvent ev){//实现动作事件接口中的方法
t.setText("张熹熹");
}
publicstaticvoid main(String args[]){
new event_learn();
}
}
其运行结果如下:
单击上图的“单击”按钮后,运行结果如下:
注:所有的,包括接口名,方法名,都不能出错,否则就出不来结果。