Java Observer和Observable在应用程序之间无法正常工作

前端之家收集整理的这篇文章主要介绍了Java Observer和Observable在应用程序之间无法正常工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个包含默认列表模型的主JFrame的应用程序.我希望如果我修改这些记录上的内容,第二个正在运行的应用程序会自动更新.

到目前为止,我有一个MainController类,它实现了监听器并覆盖了更新方法

public class MainController implements ActionListener,Observer {
  public void update(Observable o,Object o1) {}
}

和一个扩展Observable的简单类

public class Comanda extends Observable{}

我的问题是,如果我从第一个应用程序中删除一个记录,第二个列表不会更新.程序正在从文本文件删除记录,但不更新默认列表模型.编辑或添加也存在同样的问题.

我尝试在更新方法添加“reloadList()”,但这不起作用.想法?

解决方法

你有没有在Comanda上调用addObserver并将MainController添加为Observer?此外,当您发生更改时,您是否正在调用setChanged和notifyObservers?

查看您发布的代码,我可以看到您没有将Observer和Observable Objects连接在一起.正如我所说,你必须在你的Observable对象上调用addObserver,然后在你的Observable对象中,每当做出改变时你需要调用setChanged然后调用notifyObservers.仅当调用notifyObservers时,才会调用添加的任何观察者的更新方法.

你在你的问题中说过,当你删除一条记录时,列表不会更新,这让我觉得Comanda可能不是你想要观察的对象.保存记录列表的那个对象应该是Observable.

有关Observer / Observable模式的更多信息,请查看this.

猜你在找的Java相关文章