我想将TableView中的数据放入地图集合中。每个Map表示表中的一行,并包含所有可见列的columnName-entry-pair。
现在,对我来说棘手的部分是仅从可见列中获取数据。
在TableView上,我可以调用getItems()
,但我怎么能检查哪个列可见?
使用getColumns()
,我可以查看哪些列可见,但我怎样才能获得相应的数据?
最简单的方法是迭代所有可见列 - 但我找不到办法做到这一点。
任何人都可以给我一个正确方向的提示或指针吗?
答案 0 :(得分:1)
你可以试试这个,虽然我没有测试过:
final ObservableList<Map<String, Object>> collection = FXCollections.observableArrayList();
tableView.getItems().forEach(item -> {
final Map<String, Object> itemMap = new HashMap<>();
tableView.getVisibleLeafColumns().forEach(column -> {
itemMap.put(column.getText(), column.getCellObservableValue(item).getValue());
}
collection.add(itemMap);
});