java – ObservableList不更新ArrayList
对于学校作业,我们正在使用
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的文档:
因此,可观察列表的任何修改都将报告给支持列表.但是,在observableArrayList的情况下:
所以这个列表不受给定列表的支持,它只是作为初始集合. 作为旁注,您不应该调用notifyAll():此方法与JavaFX无关,它与唤醒等待此对象的线程有关. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |