gpt4 book ai didi

Java 等同于 Cocoa NSNotification?

转载 作者:太空狗 更新时间:2023-10-30 03:48:14 24 4
gpt4 key购买 nike

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

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

最佳答案

好的,例如,假设您希望程序的某些部分在您的 Loader 开始扫描和完成扫描时得到通知(不要担心什么是 Loader,或者什么是扫描,这些是我上一份工作中留下的一些代码的例子)。您定义一个接口(interface),将其称为“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() 做同样的事情;

需要通知这些事件的代码实现了该接口(interface)(它们自己或在内部类中),并调用“loader.addScanListener(this)”。它的 scanStarted() 和 scanCompleted() 方法在适当的时候被调用。您甚至可以使用带有参数和/或返回结果的回调来执行此操作。一切由您决定。

关于Java 等同于 Cocoa NSNotification?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/488919/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com