当前位置:  开发笔记 > 编程语言 > 正文

Java相当于Cocoa NSNotification?

如何解决《Java相当于CocoaNSNotification?》经验,为你挑选了1个好方法。

我正在使用SWT小部件编写Java应用程序.我想在某个事件发生时更新某些小部件的状态(例如,更新数据模型的状态).

Java中是否存在类似于Cocoa的NSNotificationCenter的东西,我可以在其中注册一个对象来监听通知事件并对它们做出响应,以及让其他对象"触发"通知?



1> Paul Tomblin..:

好吧,假设您的计算机开始扫描时,以及完成扫描时(不要担心加载程序是什么,或扫描的内容),您希望程序的某些部分得到通知,这些是来自我上一份工作中的一些代码.你定义一个接口,称之为"ScanListener",就像

public interface ScanListener
{
  public void scanStarted();
  public void scanCompleted();
}

现在Loader为你的其他代码定义了一个注册回调的方法,比如

public void addScanListener(ScanListener listener)
{
  listeners.add(listener);
}

Loader在开始扫描时执行以下代码

for (ScanListener listener : listeners)
{
  listener.scanStarted();
}

当它完成时,它与listener.scanCompleted()做同样的事情;

需要通知这些事件的代码实现该接口(自身或内部类),并调用"loader.addScanListener(this)".它的scanStarted()和scanCompleted()方法在适当的时候被调用.您甚至可以使用带参数和/或返回结果的回调来执行此操作.全取决于你.

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有