- 浏览: 2730933 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1313)
- JS (65)
- CSS (6)
- html (30)
- dweamweaver工具相关 (2)
- Spry (1)
- DB (103)
- p2p (1)
- java (405)
- .net (3)
- oracle (24)
- struts (18)
- myeclipse (15)
- linux (49)
- SQL SERVER2008 (101)
- jsp (21)
- resume (1)
- other (1)
- ajax (3)
- 云计算 (2)
- excel (32)
- vss (1)
- 警戒 (1)
- eclipse (21)
- c (1)
- dialog designer (7)
- axis1.4 (4)
- webservice (11)
- CTI (1)
- svn (8)
- spring (27)
- tomcat (13)
- log4j (14)
- 网络应用 (7)
- mysql (59)
- bat (4)
- jdbc (1)
- 正式表达式 (1)
- hibernate (27)
- iphone (2)
- 系统应用 (107)
- servlet (3)
- vmware (2)
- php (12)
- JQuery (30)
- avaya (5)
- postgresql (19)
- java面试 (1)
- rose (1)
- Socket (1)
- xml (2)
- PowerDesign (3)
- visio (1)
- jstl (4)
- informix (2)
- assemble (2)
- English Study (2)
- IOS (9)
- CMMI (1)
- outlook (4)
- poi (1)
- hadoop (5)
- SAE (3)
- jor (1)
- jquery mobile (1)
- git (11)
- mina (1)
- ibatis (2)
- wordpress (2)
- 支付宝 (1)
- struts2 (14)
- apns (1)
- html5 (1)
- xampp (2)
- uml (2)
- 项目管理 (1)
- 敏捷开发 (1)
- 设计模式 (2)
- spark (1)
- maven (9)
- 微信公众平台 (1)
- json (2)
- junit (1)
- quartz (2)
- redis (2)
- memcache (1)
- android (3)
- 红杏 (1)
- postman (1)
- mybatis (5)
- iplat4j (1)
- windows (1)
- logback (1)
- Netty (1)
- wiki (1)
- dubbo (1)
- sonar (2)
- jenkins (2)
- mac (10)
- office (4)
- groovy (1)
- intellij (6)
- zookeeper (2)
- 诛仙 (1)
- MQ (2)
- docker (1)
- 2222 (0)
最新评论
-
代码改变生活:
虽然代码敲的头疼的要命,但是依然要感谢你,感谢您共享!!!!开 ...
jxl读取excel日期相差8小时 -
www3837:
org.slf4j.Logger 下载 -
hyztty:
wait_timeout = 86400 interacti ...
druid连接池 -
niaodanwangzi:
连接池可不是给你检测连接状态用的。是为了连接复用,减少连接数。 ...
druid连接池 -
supermine0903:
学习了 啦啦啦
多个路由器同时上网
package testCustomEvent; import javax.swing.event.EventListenerList; import java.util.Date; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text.DateFormat; import java.text.SimpleDateFormat; /** * Java的事件机制/自定义事件. 运行结果: do something interesting in source here. listener detects [event]:wintys.event.MyEvent[source=wintys.event.MySource@18158 59] [occur at]:2012-10-11 16:27:49 listener detects [event]:wintys.event.MyEvent[source=wintys.event.MySource@18158 59] [occur at]:2012-10-11 16:27:49 * @version 2012-10-11 * @author germmy(gogogo@gmail.com) * @see http://www.blogjava.net/gogogo */ public class MyEventTestNew implements MyListener{ public static void main(String[] args){ MySource source = new MySource(); ActionListener al=new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub System.out.println("allllllllllllllll"); } }; MyEventTestNew mtn=new MyEventTestNew(); source.addMyListener(mtn); source.addMyListener(al); source.doSomething(); } @Override public void doMyAction(MyEvent e) { System.out.println("listener detects " + e); } } /** * 自定义的事件. * @version 2012-10-11 * @author germmy(gogogo@gmail.com) * @see http://www.blogjava.net/gogogo */ class MyEvent extends java.util.EventObject{ private Date date;//记录事件发生的时间 public MyEvent(Object source , Date date){ super(source); this.date = date; } public String toString(){ DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dt = df.format(date); return "[event]:" + super.toString() + " [occur at]:" + dt; } } /** * 自定义事件监听器接口. * @version 2012-10-11 * @author germmy(gogogo@gmail.com) * @see http://www.blogjava.net/gogogo */ interface MyListener extends java.util.EventListener{ void doMyAction(MyEvent e); } /** * 自定义事件源. * @version 2012-10-11 * @author germmy(gogogo@gmail.com) * @see http://www.blogjava.net/gogogo */ class MySource{ /** * 保存注册的监听器列表. * 子类可以使用它保存自己的事件监听器(非MyListener监听器)列表. */ protected EventListenerList listenerList = new EventListenerList(); private MyEvent myEvent = null;//fireDoMyAction()使用此变量 /** * 没有做任何事 */ public MySource(){ } /** * 添加一个MyListener监听器 */ public void addMyListener(MyListener listener){ listenerList.add(MyListener.class , listener); } /** * 添加一个MyListener监听器 */ public void addMyListener(ActionListener al){ listenerList.add(ActionListener.class , al); } /** * 移除一个已注册的MyListener监听器. * 如果监听器列表中已有相同的监听器listener1、listener2, * 并且listener1==listener2, * 那么只移除最近注册的一个监听器。 */ public void removeMyListener(MyListener listener){ listenerList.remove(MyListener.class , listener); } /** * @return 在此对象上监听的所有MyListener类型的监听器 */ public MyListener[] getMyListeners(){ return (MyListener[])listenerList.getListeners(MyListener.class); } */ protected void fireDoMyAction() { // getListenerList() Guaranteed to return a non-null array Object[] listeners = listenerList.getListenerList(); // Process the listeners last to first, notifying // those that are interested in this event for (int i = listeners.length-2; i>=0; i-=2) { if (listeners[i]==MyListener.class) { // Lazily create the event: if (myEvent == null) myEvent = new MyEvent(this , new Date()); ((MyListener)listeners[i+1]).doMyAction(myEvent); } else if(listeners[i]==ActionListener.class) { System.out.println("hahahahahaha"); } } } /** * 做一些事件源应该做的有意义的事,然后通知监听器. * 这里只是一个示例方法. * 例如:MySource如果是一个按钮,则doSomething()就可以命名为click(), * 当用户点击按钮时调用click()方法. */ public void doSomething() { System.out.println("do something interesting here."); fireDoMyAction();//通知监听器 } }
eventListener里面其实是一个数组,将MyListener.class,ml分别放在数组的倒数第二位和倒数第一位。
这就是为什么在遍历listenerList时,数组要加2的原因。
评论
1 楼
moyue
2012-04-13
这个是你写的吗,如果是,那么你写的这个意义不大,请考虑怎么去触发事件,比方说,我现在有一个组件添加了自定义事件的listener,那么触发可能是在别的类中的组件,那么怎么去触发呢?
发表评论
-
普通类和线程类的区别
2017-02-18 21:44 1244假设一个类是SubThread,它的init( ... -
最近一些心得
2017-02-08 16:01 8891、Mac starUML在导出png图片时,不要用s ... -
druid连接池
2016-09-14 16:00 5177环境:Ubuntu+Mysql5.5 近期一直报 ... -
罕见问题记录
2016-08-24 17:56 9151、如果提示对catalina.out无权限。 此时 ... -
Java Security
2016-08-24 17:50 952背景: 公司有某些场景需要向第三方提供服务, ... -
kafka java demo
2016-07-10 20:51 6756环境:ubuntu10 2台(32位)+JDK1.8(32 ... -
autowired resource component
2016-05-11 15:23 941背景:同样的bean类型有2个。 尝试用autowire ... -
eclipse 部署spring源码经验之谈
2016-05-08 23:41 16991、junit加载applicationCont ... -
main函数中如何实例化内部类
2016-04-30 22:50 1201需要先new一个父类的对象,然后用父类对象.new 内 ... -
java synchronized 串行
2016-04-30 22:42 1189背景:大家都知道用synchronized来实现加锁 ... -
观察者 Listener是什么意思
2016-02-26 10:40 940从观察者设计模式来看,Listener翻译成中文就是 ... -
UTF-8和Unicode的关系
2016-02-25 16:34 978utf-8只实际了unicode的第一个plane ... -
dubbo
2016-02-18 15:48 7681、配置dubbo.xml,主要是连接到dubbo服务 ... -
datetime格式化
2016-02-18 11:25 837org.joda.DateTime格式化成特定的Str ... -
Java接口中的成员变量为什么必须是public static final?
2016-01-10 16:20 1375必须是final的,否则多个类全继承他后,每个人都改, ... -
抽象类能不能有构造函数
2016-01-10 16:06 1032可以有,但是不能用,即不能new。 refur ... -
workspace workset设置
2016-01-10 15:51 1226背景:当eclipse里面的项目太多时,看上去非常凌 ... -
eclipse一直building workspace
2015-12-10 19:37 804我这里的原因很特殊,是因为在配置spring d ... -
序列化和反序列化
2015-12-10 19:19 920说白了,序列化后 ... -
java.net.bindexception cannot assign requested address jvm_bind
2015-12-10 19:14 1395我的原因是hosts文件中关于127.0.0.1有2个 ...
相关推荐
"H3C交换机典型配置举例-6W100-ACL典型配置举例" 本文将详细介绍H3C交换机中的ACL(Access Control List,访问控制列表)典型配置举例,包括允许指定的主机访问网络和拒绝指定的主机访问网络两种配置举例。 首先,...
最新单片机仿真 文件包应用举例最新单片机仿真 文件包应用举例最新单片机仿真 文件包应用举例最新单片机仿真 文件包应用举例最新单片机仿真 文件包应用举例最新单片机仿真 文件包应用举例最新单片机仿真 文件包应用...
最新单片机仿真 宏定义应用举例最新单片机仿真 宏定义应用举例最新单片机仿真 宏定义应用举例最新单片机仿真 宏定义应用举例最新单片机仿真 宏定义应用举例最新单片机仿真 宏定义应用举例最新单片机仿真 宏定义应用...
最新单片机仿真 条件编译应用举例最新单片机仿真 条件编译应用举例最新单片机仿真 条件编译应用举例最新单片机仿真 条件编译应用举例最新单片机仿真 条件编译应用举例最新单片机仿真 条件编译应用举例最新单片机仿真...
MVCC机制举例
"Dijkstra算法应用举例" Dijkstra算法是一种常用的图算法,用于寻找从起点到其他顶点的最短路径。下面是一个使用Dijkstra算法的应用举例,展示了如何使用该算法来解决实际问题。 从给定的代码中,我们可以看到,这...
最新单片机仿真 内部函数intrins.h应用举例最新单片机仿真 内部函数intrins.h应用举例最新单片机仿真 内部函数intrins.h应用举例最新单片机仿真 内部函数intrins.h应用举例最新单片机仿真 内部函数intrins.h应用举例...
最新单片机仿真 字符函数ctype.h应用举例最新单片机仿真 字符函数ctype.h应用举例最新单片机仿真 字符函数ctype.h应用举例最新单片机仿真 字符函数ctype.h应用举例最新单片机仿真 字符函数ctype.h应用举例最新单片机...
oracle 常用的命令举例,内容全面、实用
最新单片机仿真 标准函数stdlib.h应用举例最新单片机仿真 标准函数stdlib.h应用举例最新单片机仿真 标准函数stdlib.h应用举例最新单片机仿真 标准函数stdlib.h应用举例最新单片机仿真 标准函数stdlib.h应用举例最新...
01-登录设备典型配置举例 02-RBAC典型配置举例 03-软件升级配置举例 04-ISSU典型配置举例 05-补丁包升级典型配置举例 06-以太网链路聚合典型配置举例 07-端口隔离配置举例 08-生成树典型配置举例 09-VLAN...
最新单片机仿真 字符串函数string.h应用举例最新单片机仿真 字符串函数string.h应用举例最新单片机仿真 字符串函数string.h应用举例最新单片机仿真 字符串函数string.h应用举例最新单片机仿真 字符串函数string.h...
本示例中的"点对点通讯举例_TCP Server.vi"和"点对点通讯举例_TCP Client.vi"文件分别代表TCP服务器端和客户端的LabVIEW程序。下面我们将详细讨论这两个方面: 1. **TCP服务器端**: - `点对点通讯举例_TCP Server...
fputc和fgetc函数 使用举例 C源代码 /* 用fseek函数可以实现改变文件的位置指针。 fseek(文件类型指针,位移量,起始点) “起始点”用0、1或2代替,0代表“文件开始”,1为“当前位置”,2为“文件末尾”。 例:在...
计算机安全XSS 实际攻击举例 计算机安全是计算机系统和网络的安全保护,避免未经授权的访问、使用、披露、修改或破坏计算机系统和网络中的数据。黑客技术是计算机安全攻防技术的重要组成部分,其中包括XSS实际操作...
深入理解条件随机场:包含其原理、应用及举例。CRF 就像一个反向的隐马尔可夫模型(HMM),两者都是用了马尔科夫链作为隐含变量的概率转移模型,只不过 HMM 使用隐含变量生成可观测状态,其生成概率有标注集统计得到,...
生成树配置举例 简介 本文档介绍了生成树的配置举例。 配置前提 本文档中的配置均是在实验室环境下进行的配置和验证,配置前设备的所有参数均采用出厂时的 缺省配置。如果您已经对设备进行了配置,为了保证配置效果...
JvavMath类功能的使用举例,随机数
分布式链接,以一种常微分的在链接上的应用举例!打码了传统的链接方式 !
XILINX语法约束举例说明,列举了400多个xilinx语法约束的说明举例,便于学习xilinx约束