【发布时间】:2016-04-07 15:56:59
【问题描述】:
我以前从未使用过 tableview,而且我对 Java 和 JavaFX 还是很陌生。我试图镜像一个示例,但由于数据来自内部创建的数据库客户端,因此我无法准确复制它。无论如何,我的数据正在进入表格,但它以看起来像 csv 数据的形式输入,并且每一列都没有放入各自的列中。这是澄清我的问题的屏幕截图:
在此处获取列
for (Column col : drs.getColumns()){
TableColumn tblCol = new TableColumn(col.getName());
tblCol.setCellValueFactory(new Callback<CellDataFeatures<ObservableList,String>,ObservableValue<String>>(){
public ObservableValue<String> call(CellDataFeatures<ObservableList, String> p) {
return new SimpleStringProperty(p.getValue().toString());
}
});
table.getColumns().addAll(tblCol);
}
在此处获取行:
while (drs.hasNextRow()) {
ObservableList<String> row = FXCollections.observableArrayList();
for (int i = 0; i < drs.getColumns().length; i++) {
row.add(drs.getNextRow().getItem(i) + "");
}
data.add(row);
}
这是我无法将数据发送到表的地方。
table.setItems(data);
System.out.println("dis is data: " +data);
数据打印如下:
dis is data: [[data, data, data....], [data, data, data....], [data, data, data....]]
它获取每个 [row] 并将其放入每条记录的每一列中。我假设我需要数据看起来像:
[[data], [data], [data]....[data]], [[data], [data], [data]....[data]], [[data], [data], [data]....[data]]
} catch(Exception e){
e.printStackTrace();
System.out.println("everything is broken");
}
}
所以,我迷路了。我不知道自己在做什么,如果您能提供任何帮助,我将不胜感激。
【问题讨论】: