一.基本概念
1.事件表示程序和用户之间的交互,例如在文本框中输入,在列表框或组合框中选择,选中复选框和单选框,单击按钮等。
2. 在事件处理的过程中,主要涉及三类对象。
• Event(事件):用户对组件的一次操作称为一个事件,以类的形式出现。例如,键盘操作对应的事件类是 KeyEvent。
• Event Source(事件源):事件发生的场所,通常就是各个组件,例如按钮 Button。
• Event Handler(事件处理者):接收事件对象并对其进行处理的对象事件处理器,通常就是某个 Java 类中负责处理事件的成员方法。
3.事件处理者(监听器)通常是一个类,该类如果能够处理某种类型的事件,就必须实现与该事件类型相对的接口。例如,一个ButtonHandler 类之所以能够处理 ActionEvent 事件,原因在于它实现了与ActionEvent 事件对应的接口 ActionListener。每个事件类都有一个与之相对应的接口。
代码
package cn.edu.hbue.wmp;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
//1.implements继承接口抽象类
public class JFrameDemo07 extends JFrame implements ActionListener{
JLabel j;
JButton btn1;
JButton btn2;
JButton btn3;
JButton btn4;
JTextField jf;
public JFrameDemo07(){
//窗口属性
setTitle("多事件源");
setSize(400,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
j = new JLabel("请输入文字");
btn1 = new JButton("1");
btn2 = new JButton("2");
btn3 = new JButton("3");
btn4 = new JButton("4");
jf = new JTextField(10);
Container c = getContentPane();
c.setLayout(new FlowLayout());
//2.添加监听器件
btn1.addActionListener(this);
btn2.addActionListener(this);
btn3.addActionListener(this);
btn4.addActionListener(this);
c.add(j);
c.add(btn1);
c.add(btn2);
c.add(btn3);
c.add(btn4);
c.add(jf);
setVisible(true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new JFrameDemo07();
}
//设置相应消息响应函数
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
StringBuffer str = new StringBuffer(jf.getText());
str.append(e.getActionCommand());
String str1 = new String(str);
jf.setText(str1);
}
}