黑马程序员技术交流社区

标题: 什么是事件、事件源和事件监听器? [打印本页]

作者: 刘源    时间: 2012-8-5 18:32
标题: 什么是事件、事件源和事件监听器?
本帖最后由 刘源 于 2012-8-5 23:09 编辑

什么是事件、事件源和事件监听器?他们之间是什么关系
问题已经解决”。

作者: 樊占江    时间: 2012-8-5 18:37
事件:用户对组件的一个操作,称之为一个事件
事件源:发生事件的组件就是事件源
事件处理器:某个Java类中的负责处理事件的成员方法

再给你一张图

抱歉!我表达不是很好,如果你有什么看不懂,就在群里找我,我给你细说

080529150840[1].jpg (11.1 KB, 下载次数: 76)

080529150840[1].jpg

作者: 官文昌    时间: 2012-8-5 18:51
事件是可以被控件识别的操作,如按下确定按钮,选择某个单选按钮或者复选框。每一种控件有自己可以识别的事件,如窗体的加载、单击、双击等事件,编辑框(文本框)的文本改变事,等等。事件有系统事件和用户事件。系统事件由系统激发,如时间每隔24小时,银行储户的存款日期增加一天。用户事件由用户激发,如用户点击按钮,在文本框中显示特定的文本。事件驱动控件执行某项功能。
事件由事件源所激发。向事件源注册的事件侦听器可接收有关特定事件类型的通知

Java事件监听器即一组动作接口。如键盘事件KeyEvent对应的接口是:
  public interface KeyListener extends EventListener {
  public void keyPressed(KeyEvent ev);
  public void keyReleased(KeyEvent ev);
  public void keyTyped(KeyEvent ev);
  }
  这个监听器定义了3个动作:键盘按下去调用keyPressed方法,键盘抬起来调用keyReleased,键盘被敲击一次调用keyTyped。
作者: 余明辉    时间: 2012-8-5 18:58
事件源:就是awt或者swing中的那些图形界面组件
事件:每一个事件源都有自己特有的对应事件和共性事件
监听器:将可以触发某一个事件的动作(不止一个动作)都已经封装到了监听器中

下面是代码,可以帮助你理解下
import java.awt.*;
import java.awt.event.*;

public class TestListener {
        public static void main(String[] args) {
                new TestFrame ().launchFrame();
        }
}

class TestFrame extends Frame {
        //而添加的TextField就是这里的事件源,可以理解成这个事件源自哪里
        TextField tfS;
        TextField tfC;
        public void launchFrame() {
                tfS = new TextField();
                tfC = new TextField();
               
                add(tfS, BorderLayout.SOUTH);
                add(tfC, BorderLayout.CENTER);
               
                //WindowListene就是添加的一个监听器
                addWindowListener(new WindowAdapter() {
                        //而这个WindowEvent e中的e,就是系统自动帮你封装好的事件,就像异常那样,把异常事件封装成了一个对象
                        public void windowClosing(WindowEvent e) {
                                System.exit(0);
                        }
                });                       
                setBounds(300,150,400,400);
                setVisible(true);
        }
}
希望可以帮到你理解




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2