添加新数据后 JavaFX 8 更新 TableView

JavaFX 8 update TableView after new Data added

我的 TableView 没有更新,我需要监听器吗? (m 是我的模特)

@FXML
private TableView<Mitarbeiter> mitarbeiter;

ObservableList<Mitarbeiter> data =
                FXCollections.observableArrayList(m.getMitarbeiterListe()
                );

mitarbeiter.setItems(data);

public ArrayList getMitarbeiterListe(){
    return mitarbeiterliste;
}

在一个新的 Stage 中,我将一些 Mitarbeiter 添加到我模型的列表中

m.addMitarbeiterToList(mitarbeiter)

public void addMitarbeiterToList(Mitarbeiter mitarbeiter){
    mitarbeiterliste.add(mitarbeiter);
}

但是另一个Stage中的TableView没有更新新数据。 到底是不是ObservableList没有从Model指向ArrayList?

不是将项目添加到 mitarbeiterliste(这是一个 ArrayList,并且不可观察),而是将它们添加到 data,这是 ObservableList 持有table 项。 TableView 观察这个列表并在列表内容改变时自动更新视图。

你的代码片段的上下文不是很清楚,但你会做类似的事情

public ArrayList getMitarbeiterListe(){
    return data;
}

或代替

mitarbeiterliste.add(mitarbeiter); 

data.add(mitarbeiter);