JavaFX TableView:仅从可见列收集数据

时间:2017-05-18 07:18:27

标签: java javafx

我想将TableView中的数据放入地图集合中。每个Map表示表中的一行,并包含所有可见列的columnName-entry-pair。

现在,对我来说棘手的部分是仅从可见列中获取数据。

在TableView上,我可以调用getItems(),但我怎么能检查哪个列可见?

使用getColumns(),我可以查看哪些列可见,但我怎样才能获得相应的数据?

最简单的方法是迭代所有可见列 - 但我找不到办法做到这一点。

任何人都可以给我一个正确方向的提示或指针吗?

1 个答案:

答案 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);
});