一、概念

1.事件监听器

事件监听器就我个人的理解就是:被外部事件(键盘、鼠标)引发的程序,这段程序是被嵌入到事件源的类里面,它负责监听事件列表。而很多人把事件监听器理解成是实现EventListener接口的类。

而我的理解是实现EventListener接口的类是事件处理器。里边有处理事件的方法。从逻辑上看是这样的,但是人家既然这样来命名了,那也没有办法。因为程序员只要知道这么去添加监听器就行了,不必理解内部的处理流程,但是作为一个热爱计算机的程序员来说,必须要理解其过程。

事件监听器的功能:

       负责监听事件注册类表,有相关事件注册就立马 new 一个事件,然后调用事件处理器里的事件处理方法,完成事件处理。然后移除事件注册列表的相关事件。

2.事件源:

事件源是事件的起源,可以称作事件触发源。其主要的功能是,介绍外边事件,比如键盘、鼠标等,当有事件时就会触发事件监听器。

主成分:主要由事件监听器、注册事件方法(如:addActionListener)构成。

3.事件对象:

实现EventObject接口的类。里面封装了对事件源进行操作的方法。比如:getActionCommand()方法。

4.事件处理器

       事件处理器是对事件进行处理的类,这类实现EventListener接口。此类由程序员编写。比如 事件处理器中的处理程序:

java 监听机制模拟(JButton按钮监听机制)

二、模拟程序

以JButton按钮为列,看一下程序:

 

   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
;
;
;
 
//自定义一个按钮事件
{
 
;
)
{
);
;
);
}
 
{
;
}
}
 
// 弄一个在按钮里面使用的接口,通过继承此接口可以完成事件处理的类
{
//这里是当事件发生后的响应过程
);
}
 
//再自定义一个监听器
ActionListener
{
//这里是当事件发生后的响应过程
)
{
();
))
);
 
}
}
 
//以下这个类为触发事件的事件源
//比如button按钮
 
;
 
)
{
;
}
()
{
;
}
//定义一个向量
 
//注册监听器
{
// 将指定元素添加到此向量的末尾
);
}
 
//移除监听器
{
//从此向量中移除变量的第一个(索引最小的)匹配项。
);
}
 
//判断监听器是否监听到
{
;
 
)
{
;
//产生了事件
();
++)
{
//调用监听器处理事件
//处理事件
//移除监听器
}
}
}
 
//定义一个公用方法用于触发事件 安装在按钮内部
()
{
);
();
}
}
 
{
 
)
{
//事件源-->按钮
//定义监听器
 
//在按钮上注册监听器监听按钮点击事件
//触发按钮事件
 
);
}
}
 来自CODE的代码片
ButtonEven.java

 

 

三、问题:

(理解以上概念及代码后,在看看以下问题)

1、以上只是模拟,那么Java中是如何通过点击按钮,然后触发按钮事件的,比如点击按钮就触发以上程序所提供的Trigger() 方法的?

相关文章:

  • 2022-12-23
  • 2021-11-28
  • 2021-09-13
  • 2021-05-15
  • 2021-06-07
  • 2021-06-05
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-01-22
  • 2022-12-23
  • 2021-06-17
  • 2022-12-23
  • 2021-09-11
  • 2022-02-18
相关资源
相似解决方案