JavaFX8在添加新数据后更新TableView

JavaFX8在添加新数据后更新TableView,javafx,tableview,observablelist,Javafx,Tableview,Observablelist,我的TableView未更新,是否需要侦听器? (m是我的模特) 但另一阶段的TableView并没有更新新数据。 最后,ObservableList是否没有指向模型中的ArrayList?而不是将项添加到MitarbeiterList(它是ArrayList,并且不可观察),将它们添加到数据,这是保存表项的ObservableList。TableView观察此列表,并在列表内容更改时自动更新视图 代码片段的上下文不是很清楚,但是您可以执行以下操作 public ArrayList getMit

我的TableView未更新,是否需要侦听器? (m是我的模特)

但另一阶段的TableView并没有更新新数据。
最后,ObservableList是否没有指向模型中的ArrayList?

而不是将项添加到
MitarbeiterList
(它是
ArrayList
,并且不可观察),将它们添加到
数据
,这是保存表项的
ObservableList
TableView
观察此列表,并在列表内容更改时自动更新视图

代码片段的上下文不是很清楚,但是您可以执行以下操作

public ArrayList getMitarbeiterListe(){
    return data;
}
或者代替

mitarbeiterliste.add(mitarbeiter); 


我想我有点困惑了,表格中是否有任何数据显示在任何点上?如果是这样,我有点惊讶,因为没有为表定义任何列。查看本教程,了解有关表视图以及它们如何与tableColumns交互的更多信息:我去掉了这一点,表中有列,并且表工作正常。当我从模型中的现有数据中更改值时,TableView正在更新值,但是当我向模型中的ArrayList添加新数据时,TableView没有显示新添加的数据啊,好吧,我想我看到了混淆。根据这里的文档:基础列表的突变不会报告给可观察列表。相反,您必须对可观察列表本身执行操作,而不是对它的底层数据结构执行操作,谢谢您的链接,好的,当我更改ArrayList中现有元素的值时,为什么TableView会更新?看起来在我看到注释时您已经明白了这一点。完整性方面:
ObservableList
是添加通知的底层
ArrayList
的包装器。因此,两个列表都指向同一个元素集合,但是对
observeList
所做的更改将通知所有观察者,包括
表视图
。如果更改基础
ArrayList
,数据会发生更改,但
TableView
可能不知道必须重新绘制。如果您更改了
ObservableList
,您将更改相同的数据,但它也会通知
TableView
数据已更改。
public ArrayList getMitarbeiterListe(){
    return data;
}
mitarbeiterliste.add(mitarbeiter); 
data.add(mitarbeiter);