Tag: 事件

Spring框架事件

我正在阅读spring框架文档,并发现了一个使用ApplicationContext在Spring中引发事件的部分。 在阅读了几段后,我发现春季事件同步发生。 有没有办法提出异步事件? 非常感谢您的帮助。 我正在寻找类似的东西,这将有助于我完成我的模块。

何时使用EventListenerList而不是一般的侦听器集合

当我学习如何在Java中激活事件时,我熟悉了EventListenerList。 当我创建自己的侦听器时,我编写了侦听器,因此它扩展了EventListener,我将它们存储在EventListenerList中,我的fire方法将遍历事件侦听器,如下所示: protected void fireChangeOccurred(Change change) { Object[] listeners = listenerList.getListenerList(); for (int i = listeners.length-2; i>=0; i-=2) { if (listeners[i]==ChangeListener.class) { ((ChangeListener)listeners[i+1]).changeOccurred(change); } } } 现在我正在查看简单地将侦听器放入HashMap的代码(可以是任何集合),侦听器接口不会扩展EventListener,而fire方法如下所示: protected void fireChangeOccurred(Change change) { for (ChangeListener listener : listeners) { listener.changeOccurred(change); } } 使用EventListenerList而不仅仅是维护我自己的监听器列表有什么好处? 只有侦听器在Swing组件中才真正有用 – 对于事件调度线程是否重要?

用于订阅的Java侦听器设计模式

我正在尝试设计一个与c#delegates概念相似的Java系统。 这是我希望实现的基本function: public class mainform { public delegate onProcessCompleted //…… processInformation() { onProcessCompleted(this); } //…… } //PLUGIN public class PluginA { public PluginA() { //somehow subscribe to mainforms onProcessingCompleted with callback myCallback() } public void myCallback(object sender) { } } 我通读了这个网站: http : //www.javaworld.com/javaqa/2000-08/01-qa-0804-events.html?page = 1 他们参考手动实现整个“订阅列表”。 但是代码不是一个完整的例子,而且我已经习惯了c#,因为我无法理解如何在java中完成它。 有没有人能够看到我能看到的工作考试? 谢谢 斯蒂芬妮

如何生成具有泊松分布的离散随机事件?

我知道Knuth用于生成随机泊松分布数的算法(下面用Java编写)但是如何将其转换为随时间随机调用方法generateEvent() ? int poissonRandomNumber(int lambda) { double L = Math.exp(-lambda); int k = 0; double p = 1; do { k = k + 1; double u = Math.random(); p = p * u; } while (p > L); return k – 1; }

Java Listenerinheritance

我有一个java类来触发自定义java事件。 代码的结构如下: public class AEvent extends EventObject { … } public interface AListener extends EventListener { public void event1(AEvent event); } public class A { public synchronized void addAListener(AListener l) { .. } public synchronized void removeAListener(AListener l) { .. } protected void fireAListenerEvent1(AEvent event) { .. } } 一切正常,但我想创建一个新的A子类(称之为B),它可能会触发一个新的事件。 我正在考虑以下修改: public class BEvent extends […]

Java中C#事件的替代

我是.Net开发者。 我想知道Java中是否有像C#这样的事件处理的事件处理机制。 我想做的是我想在某些条件下从我的class级中筹集/开火。 此类的消费者应该注册该事件并编写事件处理方法。 这可以在C#中轻松完成。 我必须用Java实现这个东西。 谷歌搜索后,我发现了一些链接,但所有这些都在谈论AWT和摇摆中的GUI事件。 谁能帮我吗。

Java相当于.Net的AutoResetEvent?

我应该使用什么来获得与Java中的AutoResetEvent等效的语义? (请参阅ManualResetEvent的此问题 )。

简单的java消息调度系统

我正在开发一个可以发生各种事件的小型Java游戏。 至少有几十个基本事件,各种事件处理程序可能会感兴趣。代码中还有几个地方可能会触发这些事件。 我不想强迫事件监听器知道他们需要注册哪个类,而是想创建某种集中式的消息调度系统,有些类会将事件提交到,感兴趣的类可以挂钩来监听某些类型事件。 但我有一些问题。 首先,这似乎是一个明显而常见的问题。 是否有简单的虚拟机内消息系统的最佳实现? 好像会有。 其次,更重要的是,我正在尝试为调度类找出一种相当优雅的方式来尽可能少地了解消息的类型。 我希望能够在不修改消息调度程序的情况下创建新类型的事件。 但是,我有一个相反的担忧。 我真的很想清楚处理方法的方法签名。 换句话说,我更喜欢以下内容: public class CollisionConsoleHandler implements CollisionListener { @Override public void spaceshipCollidedWithMeteor( Spaceship spaceship, Meteor meteor ) { //… } } 更通用,更难阅读的东西: public class CollisionConsoleHandler implements GameMessageListener { @Override public void handleMessage( GameMessage message ) { if( message instanceof SpaceshipCollisionMessage ) { Spaceship spaceship = […]

Java的Observable类的替代品?

我从C#世界来到Java,其中Observer模式被实现为带有event关键字的一流语言结构。 我看到Java从早期开始就有Observable类,但它显然存在实现问题,似乎并没有被广泛使用。 到目前为止,我刚刚在我的Java代码中滚动了我自己的Observer模式实现,但我总是忍不住认为必须有一个更好的替代方案来总是输出这个样板代码。 Swing中有Listener类,但它们似乎不适合非Swing代码。 针对这个常见问题的推荐解决方案是什么? 第三方库对我来说没问题。

在gui线程中触发异步事件

TL; DR我正在寻找让一个线程在另一个线程中引发事件的方法 编辑:我说“立即”这个词,正如一些评论者指出的那样,是不可能的。 我的意思是它应该合理地快速发生,如果gui线程处于空闲状态(如果我的工作正确,应该是),在毫秒到纳秒的范围内。 案例:我有一个有Parent类的项目。 该Parent类创建一个子线程’Gui’,它包含一个javafx应用程序并实现Runnable。 Parent和Gui都引用了相同的BlockingQueue。 我想要发生的事情:我希望能够将对象从父类发送到Gui线程,并让Gui接收某种事件,立即调用某种处理函数,所以我知道得到一个或者队列中的更多对象并将它们添加到gui中。 用于“观察者模式”的其他解决方案通常涉及位于while循环中的观察者,检查一些同步队列以寻找新数据。 这对我的应用程序不起作用,因为Javafx要求只能从gui线程修改gui元素,并且gui线程必须在很大程度上保持空闲状态,以便它有时间重绘事物并响应用户事件。 循环会导致应用程序挂起。 我发现似乎有潜力的一个想法是从父线程中断Gui线程,并触发某种事件,但我找不到任何方法来实现这一点。 有任何想法吗? 针对这种情况的最佳做法是什么?