- 浏览: 73542 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
comsci:
大家加油,把中国自定义工作流的技术水平推行新的高峰。。。。。。 ...
JAVASCRIPT 画工作流 -
dqqmq:
我也刚做了个网页式的画工作流页面,因要配置流程节点界面等原因, ...
JAVASCRIPT 画工作流 -
sxpyrgz:
braveone 写道servlet也是使用单例模式,那么当多 ...
为什么要使用单例 -
braveone:
servlet也是使用单例模式,那么当多个用户请求时,是不是要 ...
为什么要使用单例 -
大海lb:
<div class="quote_title ...
如果你是学生,你还没毕业,一定要好好的学一下大学课程,必须的
package com.hexun.sample; import javax.swing.event.EventListenerList; import java.util.Date; 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]:2009-10-11 16:27:49 listener detects [event]:wintys.event.MyEvent[source=wintys.event.MySource@18158 59] [occur at]:2009-10-11 16:27:49 * @version 2009-10-11 * @author 天堂露珠 (wintys@gmail.com) * @see http://www.blogjava.net/wintys */ public class MyEventTest{ public static void main(String[] args){ MySource source = new MySource(); MyListener myListener = new MyListener(){ public void doMyAction(MyEvent e){ System.out.println("listener detects " + e); } }; source.addMyListener(myListener); source.addMyListener(myListener); source.addMyListener(myListener); source.removeMyListener(myListener); source.doSomething(); } } /** * 自定义的事件. * @version 2009-10-11 * @author 天堂露珠(wintys@gmail.com) * @see http://www.blogjava.net/wintys */ 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 2009-10-11 * @author 天堂露珠(wintys@gmail.com) * @see http://www.blogjava.net/wintys */ interface MyListener extends java.util.EventListener{ void doMyAction(MyEvent e); } /** * 自定义事件源. * @version 2009-10-11 * @author 天堂露珠(wintys@gmail.com) * @see http://www.blogjava.net/wintys */ 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监听器. * 如果监听器列表中已有相同的监听器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); } //Winty:Copy directly from javax.swing.event.EventListenerList /*Notify all listeners that have registered interest for notification on this event type. The event instance is lazily created using the parameters passed into the fire method. */ 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); } } } /** * 做一些事件源应该做的有意义的事,然后通知监听器. * 这里只是一个示例方法. * 例如:MySource如果是一个按钮,则doSomething()就可以命名为click(), * 当用户点击按钮时调用click()方法. */ public void doSomething() { System.out.println("do something interesting here."); fireDoMyAction();//通知监听器 } } http://apps.hi.baidu.com/share/detail/18575799
发表评论
-
SQL优化,间隙锁
2020-08-20 16:58 0间隙锁1: https://blog.csdn.net/wei ... -
爬数据
2020-05-30 18:43 0package com.jframe.market.util; ... -
java print
2018-11-07 09:20 0使用WORD编辑PDF,再使用 pdf adobe acrob ... -
安全知识
2018-03-27 08:45 0互联网安全需要注意问题: 1、CSRF安全 2、XSSF问题 ... -
Atomic LOCK synchronized性能测试
2016-06-26 19:36 625今天测试了多线程并发计数的性能:结果测试性能为: 计 ... -
VELOCITY三种属性加载方式
2012-06-27 21:01 2316一、velocity默认的加载方式(文件加载方式) pac ... -
JHOTDRAW一个相当不错的JAVA绘制软件
2011-12-15 18:45 2327JHOTDRAW 是运用SWING与AWT开发的一款JAVA绘 ... -
如果你是学生,你还没毕业,一定要好好的学一下大学课程,必须的
2011-11-27 17:38 18602007年从学校步入 ... -
贴个SWING画的CUBE
2011-10-22 11:47 1085看了大牛儿们的SWING博客,画一个SWING界面玩儿玩儿,附 ... -
JHOTDRAW
2011-10-13 18:16 1235Jhotdraw是一个很不错 ... -
从原理上理解服务器
2011-08-29 22:47 0服务器,顾名思义:就是提供服务的机器。例:邮件服务器,文件服务 ... -
对图形平台的一些概念的东西
2011-08-29 21:30 0开发与图形相关的系统,已经两年了,现从宏观与微观简单介绍一下 ... -
FUTURE及FutureTask理解
2011-06-30 14:49 0import java.util.concurrent.Cal ... -
GridBagConstraints 学习
2011-06-29 16:56 0package com.az.test; import ... -
JVM最大线程数计算方法
2011-06-11 13:22 1681最近在应用服务器跑压力测试过程当中,出现无法创建线程的错误。在 ... -
.XML字符串和XML DOCUMENT的相互转换
2011-06-09 22:48 1588一、使用最原始的javax.xml.parsers,标准的jd ... -
Java性能的十一个用法
2011-05-30 16:30 0private static Credit BaseCred ... -
java clone
2011-05-30 16:12 0☆什么是Clone ☆实现Shallow clone ... -
JAVA 位移
2011-05-30 14:03 0“<<”, “>>”, “>&g ... -
PropertyChangeSupport类
2011-05-22 22:09 1482PropertyChangeSupport类 ...
相关推荐
此外,还可以使用`EventListenerList`和`EventObject`类来管理和分发事件,这在实现自定义事件模型时非常有用。 在实际应用中,监听器经常与其他设计模式结合使用,如观察者模式(Observer),提供更灵活的事件处理...
它维护了一个`EventListenerList`,用于存储所有的`PropertyChangeListener`。`firePropertyChange`方法实际上是创建并发布一个`PropertyChangeEvent`,然后遍历监听器列表,调用每个监听器的`propertyChange`方法。...
6. **事件传播和处理**:理解和使用Swing的事件模型,包括事件的冒泡和捕获,以及`EventQueue`和`EventListenerList`,以确保事件处理的正确性。 7. **用户体验**:在设计拖拽功能时,还需要考虑用户体验,例如通过...
通过学习和实践“精通Java Swing程序设计”中的实例,读者可以深入了解Swing的用法,掌握如何创建功能丰富的Java桌面应用。CHM文件提供的详细解释和示例代码,有助于理论与实践相结合,提升编程技能。
- **观察者模式**:在`javax.swing.event.EventListenerList`类中,用于实现事件监听机制。 - **代理模式**:在`java.rmi.Remote`接口中,用于实现远程方法调用。 **3. Java中的单例模式有什么注意事项?** - 在多...
3. EventListenerList:Swing组件中用于存储事件监听器的列表,支持多监听器。 4. KeyListener:监听键盘输入的接口,包括keyPressed(), keyReleased()和keyTyped()方法。 5. MouseListener / MouseMotionListener:...
这个`convert`方法创建了一个新的Bean实例,并遍历Map中的每一对键值,将其转换并设置到Bean的相应属性上。这样,我们就可以将HTTP请求参数轻松地映射到JavaBean对象。 总之,Java反射中的java.beans包提供了一套...