- 浏览: 44087 次
- 性别:
- 来自: 南京
最新评论
-
Neoman:
文章不错,收藏了
org.eclipse.ui.actionSets扩展点 -
b3270697:
我是插件开发初学者
这篇文章对我很有帮助
谢谢
org.eclipse.ui.actionSets扩展点
事件源负责产生事件
事件类:定义事件的特征;
监听器接口:定义监听器应该实现的功能;
监听器:实现监听器接口,监听事件的发生并作出响应;
所有的事件类必须继承Java事件基类,即java.util.EventObject;EventObject(Object source)是EventObject唯一的构造方法,这意味着所有事件必须在实例化时就指定事件源;EventObject类提供了getSource()方法来获取事件源;
定义了事件类后,产生一个事件,就是生成事件类的一个实例。
除了事件源,复杂的事件类代码可以含有其他属性、方法,包含更多的信息,如事件的名称、事件发生的时间、事件所属类别以及事件的描述等等
监听器接口定义了一个类要成为监听器必须具备的功能。所有的监听器接口也都必须继承监听器接口基类java.util.EventListener;EventListener本身没有定义任何方法,它只是一个标志接口,用来表明所有继承自EventListener的接口属于监听器接口。
监听器接口定义了监听器必须实现的方法。可以在监听器接口中定义任意多的事件处理方法,取决于应用所需,事件处理方法以事件对象作为入口参数,包含对事件进行处理的代码,方法名称任意,如processEvent或者handleEvent之类。
监听器是监听器接口的实现者,提供监听器接口中定义的所有方法的实现代码。简单情形下,一个监听器只监听一种类型的事件,即实现一种监听器接口。复杂的监听器可以实现多种监听器接口,监听多种类型的事件。在事件处理方法代码中,监听器可以从入口参数中获得事件对象,并通过该对象获得所需的信息,例如事件源、事件发生时间等等。事件源是一定可以从事件对象中 获得的,因为事件基类EventObject提供了getSource()方法,除此以外,能从事件对象中获得的信息,取决于事件类的定义。
作为事件源的类,必需满足以下条件:
事件源必须在内部维护一个已注册监听器的列表。当某监听器注册时,该监听器被添加到列表中,而监听器注销时,则从列表中删除;
事件源必须提供注册方法,以允许监听器注册为事件的接收者;
事件源必须提供注销方法,以允许监听器注销,停止对事件的接收;
事件源必须能够实例化事件类,即产生事件对象;
public class DemoEvent extends EventObject{
public DemoEvent(DemoSource source){
super(source)
}
}
//监听器接口定义
public interface DemoListener extends EventListener{
public void eventHandle(DemoEvent e);
}
//监听器定义
public class MyListener implements DemoListener{
public void eventHandle(DemoEvent e){
...
}
}
//事件驱动
构造事件源对象,调用fireEvent方法,监听器就会执行相应的代码。
事件类:定义事件的特征;
监听器接口:定义监听器应该实现的功能;
监听器:实现监听器接口,监听事件的发生并作出响应;
所有的事件类必须继承Java事件基类,即java.util.EventObject;EventObject(Object source)是EventObject唯一的构造方法,这意味着所有事件必须在实例化时就指定事件源;EventObject类提供了getSource()方法来获取事件源;
定义了事件类后,产生一个事件,就是生成事件类的一个实例。
除了事件源,复杂的事件类代码可以含有其他属性、方法,包含更多的信息,如事件的名称、事件发生的时间、事件所属类别以及事件的描述等等
监听器接口定义了一个类要成为监听器必须具备的功能。所有的监听器接口也都必须继承监听器接口基类java.util.EventListener;EventListener本身没有定义任何方法,它只是一个标志接口,用来表明所有继承自EventListener的接口属于监听器接口。
监听器接口定义了监听器必须实现的方法。可以在监听器接口中定义任意多的事件处理方法,取决于应用所需,事件处理方法以事件对象作为入口参数,包含对事件进行处理的代码,方法名称任意,如processEvent或者handleEvent之类。
监听器是监听器接口的实现者,提供监听器接口中定义的所有方法的实现代码。简单情形下,一个监听器只监听一种类型的事件,即实现一种监听器接口。复杂的监听器可以实现多种监听器接口,监听多种类型的事件。在事件处理方法代码中,监听器可以从入口参数中获得事件对象,并通过该对象获得所需的信息,例如事件源、事件发生时间等等。事件源是一定可以从事件对象中 获得的,因为事件基类EventObject提供了getSource()方法,除此以外,能从事件对象中获得的信息,取决于事件类的定义。
作为事件源的类,必需满足以下条件:
事件源必须在内部维护一个已注册监听器的列表。当某监听器注册时,该监听器被添加到列表中,而监听器注销时,则从列表中删除;
事件源必须提供注册方法,以允许监听器注册为事件的接收者;
事件源必须提供注销方法,以允许监听器注销,停止对事件的接收;
事件源必须能够实例化事件类,即产生事件对象;
当事件对象被产生后,事件源必须向所有的注册监听器广播该消息。事件的广播,是通过逐个调用监听器列表中所有监听器的事件处理方法来实现的。
在Java的事件驱动模式中,事件源是最复杂的。多数情况下,程序员只需编写监听器的代码,而并不需要编写事件源代码。
//事件源定义
public class DemoSource {
public DemoSource() {
}
//触发DemoEvent事件。
public void fireEvent() {
DemoEvent event = new DemoEvent(this);
broadcast(event);
}
// 监听器列表
private List<DemoListener> listenerList = new ArrayList<DemoListener>();
// 监听器注册方法
public void addListener(DemoListener listener) {
listenerList.add(listener);
}
// 监听器注销方法
public void removeListener(DemoListener listener) {
listenerList.remove(listener);
}
// 事件广播方法
public void broadcast(DemoEvent event) {
for(DemoListener listener : listenerList)
listener.handleEvent(event);
}
}
public class DemoEvent extends EventObject{
public DemoEvent(DemoSource source){
super(source)
}
}
//监听器接口定义
public interface DemoListener extends EventListener{
public void eventHandle(DemoEvent e);
}
//监听器定义
public class MyListener implements DemoListener{
public void eventHandle(DemoEvent e){
...
}
}
//事件驱动
构造事件源对象,调用fireEvent方法,监听器就会执行相应的代码。
发表评论
-
视图开发-数据保存
2009-10-21 18:41 904在模型中添加保存和加载元素的代码,将数组adress中元素保存 ... -
视图开发-UI状态存储
2009-10-21 17:12 880eclipse使用工作台提供的Memento来支持UI状态保存 ... -
视图开发-快捷键、状态栏、监听其它workbench
2009-10-21 16:51 13861快捷键,以Delete为例 viewer.getCont ... -
视图开发-属性视图
2009-10-21 16:40 11871 将viewer作为内容提供者(需要实现ISelection ... -
视图开发-添加action,过滤操作
2009-10-21 16:13 8191 创建操作,以下创建3个操作 private void ... -
视图开发-排序
2009-10-21 15:42 8291 视图排序,点击表头实现排序 自定义的排序器如下 pub ... -
视图开发-模型
2009-10-21 15:22 1074视图可以包含任何多控件,但通常为了界面简洁只包含一个Jface ... -
eclipse工作台结构图
2009-10-21 09:22 1932... -
插件开发概述
2009-10-21 09:14 1470eclipse启动时,会扫描plugins目录,检查所有插件, ... -
Display与Shell
2009-10-12 07:59 1184一个SWT程序至少需要一 ... -
SWT控件
2009-10-12 08:44 1616继承关系,Widget为所有窗口组件的父类,Control为所 ... -
基本SWT控件使用1
2009-10-12 13:45 1689Button常用的方法:setImage();setText( ... -
基本SWT控件使用2
2009-10-12 14:50 1361ColorDialog: ColorDialog dlg=ne ... -
容器composite、shell
2009-10-13 08:23 1813Composite:最基本的容器类,可以嵌套Composite ... -
Layout
2009-10-13 08:50 1333composite.setLayout(layout); s ... -
滚动条、进度条,浏览器
2009-10-20 13:31 1898ScrolledComposite sc=new Scrol ... -
SWT Jaface事件
2009-10-20 13:50 976常用事件 MouseEvent:包含信息Display(事件 ... -
JFace Viewer
2009-10-16 17:25 1725组成:1)模型和元素,模型为元素的集合;2)内容提供者与标签提 ...
相关推荐
java 事件机制 观察者模式java 事件机制 观察者模式
Java中的事件、事件监听器的简单实现例子,希望对新人有所帮助吧。
java事件处理机制ppt 有3种角色: 1.event object:就是事件产生时具体的“事件”,用于listener的相应的方法之中,作为参数,一般存在与listerner的方法之中 2.event source:具体的接受事件的实体,比如说,你...
Java设计模式__观察者模式&事件处理机制(直接适用于项目)
JAVA事件处理机制 事件监听器 事件监听器适配器
NULL 博文链接:https://vakinge.iteye.com/blog/442886
java事件处理机制 java事件处理机制 java事件处理机制 java事件处理机制
事件驱动模型实例详解(Java篇)
java事件监听机制 java中的事件机制的参与者有3种角色: .event object:就是事件产生时具体的“事件”,用于listener的相应的方法之中,作为参数,一般存在与listerner的方法之中
JavaGUI事件处理机制
主要介绍了Java事件机制要素及实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
用Java事件处理机制实现录制回放功能用Java事件处理机制实现录制回放功能用Java事件处理机制实现录制回放功能
Java事件处理机制教学方法探讨.pdf
Java + C# 事件机制理解
Java事件处理机制- 事件监听器的四种实现方式 分析的非常好
java事件处理机制.pdf
参考使用,欢迎下载