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

java – ObservableList不更新ArrayList

发布时间:2020-12-15 04:46:51 所属栏目:Java 来源:网络整理
导读:对于学校作业,我们正在使用 JavaFX中的ObservableList对象(对吗?).我已经在这一天工作了一天以上,无法解决这个问题.老师只告诉我们’谷歌’,所以也没有帮助.. 基本上,我们正在开发一个基本的管理应用程序来跟踪人员及其家人.人们是一个家庭的成员,一个家庭
对于学校作业,我们正在使用 JavaFX中的ObservableList对象(对吗?).我已经在这一天工作了一天以上,无法解决这个问题.老师只告诉我们’谷歌’,所以也没有帮助..

基本上,我们正在开发一个基本的管理应用程序来跟踪人员及其家人.人们是一个家庭的成员,一个家庭可以有多个成员.

当添加一个人或一个人时,他们被添加到一个observableList,然后应该更新一个ArrayList(所以数据可以被序列化)和一个GUI元素.这就是问题所在.

我们目前有以下实施:

private List<Persoon> personen;
private List<Gezin> gezinnen;
this.personen = new ArrayList<Persoon>();
this.gezinnen = new ArrayList<Gezin>();

private transient ObservableList<Persoon> observablePersonen;
private transient ObservableList<Gezin> observableGezinnen;
observablePersonen = FXCollections.observableArrayList(personen);
observableGezinnen = FXCollections.observableArrayList(gezinnen);

然后,当添加项目时,我们执行以下操作:

Persoon p = new Persoon();
observablePersonen.add(p);
observablePersonen.notifyAll();

在此之后,当我们检查’personen’列表时,添加的对象不存在:(

我们缺少明显的东西吗?

解决方法

您需要使用 FXCollections.observableList而不是 FXCollections.observableArrayList.

根据observableList的文档:

Constructs an ObservableList that is backed by the specified list.

因此,可观察列表的任何修改都将报告给支持列表.但是,在observableArrayList的情况下:

Creates a new observable array list and adds a content of collection col to it.

所以这个列表不受给定列表的支持,它只是作为初始集合.

作为旁注,您不应该调用notifyAll():此方法与JavaFX无关,它与唤醒等待此对象的线程有关.

(编辑:李大同)

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

    推荐文章
      热点阅读