gpt4 book ai didi

javafx-8 - 如何在没有任何数据模型的情况下向 TableView 添加行

转载 作者:行者123 更新时间:2023-12-05 06:40:20 27 4
gpt4 key购买 nike

我是 javafx 的新手,所以如果我的问题不清楚,请多多包涵。我有一个需要使用 ObservableList 填充的 TableView。

下面的代码使用从 Map 生成的数组列表填充我的“数据”,这又用于向我的表中添加行。

TableView<ArrayList> table = new TableView<>();

ObservableList<ArrayList> data = FXCollections.observableArrayList();

for(int i=0;i<listSelectedVerticesIds.size();i++){
ArrayList<String> tempString = new ArrayList<>();
for(Map.Entry<String,String> temp2 : mapVertex.get(listSelectedVerticesIds.get(i)).entrySet()){
tempString.add(temp2.getValue());
}
data.add(tempString);
}
table.setItems(data);

但是,我没有看到用“数据”中的列表填充的表格。我猜这是因为没有数据绑定(bind)(使用 setCellValueFactory)。但是,如您所见,我没有数据模型类。我的所有数据都来自 Map 作为字符串,我想将其填充到我的 tableview 中。

请提出建议。

最佳答案

这是一种非常有效的简单方法。您不需要数据结构来填充表。您只会看到这一点,因为这是大多数示例所显示的。从数据库或文件填充表是一个极其常见的用例。我不明白为什么很难找到例子。好吧,希望这会有所帮助。

private TableView<ObservableList<StringProperty>> table = new TableView<>();
private ArrayList<String> myList = new ArrayList<>();

private void updateTableRow() {
for (int row = 0; row < numberOfRows; row++) {
ObservableList<StringProperty> data = FXCollections.observableArrayList();
for (int column = 0; column < numberOfColumns; column++) {
data.add(column, new SimpleStringProperty(myList.get(row + (column * numberOfRows))));
}
table.getItems().add(data);
}
}

关于javafx-8 - 如何在没有任何数据模型的情况下向 TableView 添加行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42841426/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com