我尝试将String []作为columnNames和String [] []作为数据添加到我的JavaFx表中。我确实创建了列(它们是可见的),但数据值是不行的...... 我没有收到任何例外,所以我有点困惑。我正在寻找任何其他方式向JavaFX添加项目,但它们是有限的,也无法正常工作。
我的代码是:
private void createScene(String[] columnNames, String[][] inputData) {
TableView table = new TableView();
table.setEditable(false);
for (int i = 0; i < columnNames.length; i++) {
table.getColumns().add(new TableColumn(columnNames[i]));
}
List<List<String>> data = new ArrayList<List<String>>();
for (int i = 0; i < inputData.length; i++) {
List<String> row = new ArrayList<String>();
for (int j = 0; j < inputData[0].length; j++) {
row.add(inputData[i][j]);
}
data.add(row);
}
ObservableList<ObservableList> inpData = FXCollections.observableArrayList();
for (List<String> dataList : data) {
ObservableList<String> row = FXCollections.observableArrayList();
for (String rowData : dataList) {
row.add(rowData);
}
inpData.add(row);
}
table.setItems(inpData);
table.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
VBox vbox = new VBox();
vbox.setSpacing(5);
vbox.setPadding(new Insets(10, 0, 0, 10));
vbox.getChildren().add(table);
Scene scene = new Scene(vbox, 500, 500);
jfxPanel.setScene(scene);
}
知道如何解决这个问题吗?
答案 0 :(得分:2)
您需要向每个表列添加一个单元格值工厂,以便它知道要显示的数据。
我强烈建议您通过向其提供类型参数来正确键入表格视图和表格列。
{{1}}