我有一个小问题;
我目前有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
,现在您可以在第一列或第二列中设置此人。
我希望这能帮到您。