我有一个小问题;

我目前有2个我无法更改的来自不同对象的列表;

private ObservableList<People1> people1List = FXCollections.observableArrayList();

private ObservableList<People2> people2List = FXCollections.observableArrayList();


当我尝试将数据添加到表中时,每列中只有第二个值:

people2List  = FXCollections.observableArrayList(people1.getObservable().values());
peopleTable.setItems(people2List.sorted(new DataValueComparator()));

people1List = FXCollections.observableArrayList(peopl2.getObservable().values());
peopleTable.setItems(people1List.sorted(new DataValueComparator()));


我如何在列上执行“ setItems()”?然后在列中有2个不同的Observables对象?

我知道如果我两次执行setItems,它将覆盖第一个,但是列上有setItems方法

请,任何帮助将不胜感激

最佳答案

将两个可观察到的列表显示到同一tableview中的一种解决方案是:


创建一个抽象类型,它可以是应该由Person1和Person2类继承的抽象类或接口(例如:Person)。
仅创建一个包含人员1列表和人员2列表的人员可观察列表。
当您要在TableView中设置值时,应使用instaceof检查Person是instaceof Person1还是instanceof Person2,现在您可以在第一列或第二列中设置此人。


我希望这能帮到您。

09-05 08:57