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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |