加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 02:55:02 所属栏目:Java 来源:网络整理
导读:我有一个包含默认列表模型的主JFrame的应用程序.我希望如果我修改这些记录上的内容,第二个正在运行的应用程序会自动更新. 到目前为止,我有一个MainController类,它实现了监听器并覆盖了更新方法: public class MainController implements ActionListener,Ob
我有一个包含默认列表模型的主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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读