在Java中,事件处理机制被分为“事件源”、“事件”、“监听器”这三部分,每一部分负责一个任务,完整地结合在一起就构成了Java事件的基本框架。
事件是一种很好的让界面和用户进行交互的手段。
当用户和界面交互时,经常会进行一些操作,例如单击按钮,按下指定键盘键,都会触发事件。
事件触发后会告诉程序发生的事件,程序会根据不同的事件做出反应。在事件的发生和响应的过程中需要两个对象,事件源和事件监听器。
1)事件源就是触发事件的控件,这里包括按钮、文本框、窗体等多种控件。但是不同的控件存在不同的事件,事件信息被封装在事件对象中。
2)事件监听器是指实现专门的监听接口的类的对象。每个事件都有对应的监听接口,同时在该接口中给出了处理事件的方法。在编写监听器时需要事件监听接口,
同时实现其中的方法,在方法中编写触发事件后执行的程序。在编写程序时,还需要将监听器注册给事件源,这样才能执行事件。
3)事件源与监听器之间是多对多的关系,一个事件源可以对应多个监听器,一个监听器可以为多个事件源服务。
package com.whut.sw;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Swing12 extends JFrame{
JButton jb = new JButton();
int i=0;
//定义构造器
public Swing12(){
this.setTitle("创建按钮");
jb.setText("按钮按下了0次");
jb.setMnemonic('a'); //设置按钮的助记符
this.add(jb);
//为按钮注册监听器
jb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Swing12.this.jb.setText("按钮按下了"+(++i)+"次");
}
});
this.setBounds(300, 260, 300, 200);
this.setVisible(true);
}
public static void main(String[] args) {
Swing12 s = new Swing12();
}
}
-----------------------------------------------------------------------------------------------------------
结果如下: