7
我使用JavaFX以簡單的CSV查看器測試自己,並且我堅持填充表數據。我確實動態創建列,但是數據值是不可用的。我搜索了網絡並找到了一些方法,但所有方法都包括一個帶有自定義類(包括get/set)的ObservableList,它在CSV查看器中必須是動態的(CSV可以有任意數量的列,並且這意味着任意數量的數據值)。JavaFX TableView動態列和數據值
例子:
List<String> columns;
List<List<String>> data;
/* Fills 'columns' and 'data' */
parseCSV("C:/list.csv");
int columnIndex = 0;
TableColumn [] tableColumns = new TableColumn[columns.size()];
for(String columName : columns) {
tableColumns[columnIndex++] = new TableColumn(columName);
}
table1.getColumns().addAll(tableColumns);
for(List<String> dataList : data) {
table1.setItems(dataList); // Requires an ObservableList!
}
謝謝您的回答,但..上面的例子說:不能投java.io.FileReader爲org .javafxdata.datasources.io.DataSourceReader。下載的DataFX庫(v0.0.6 - latest)不包含它自己的FileReader實現,但NetBeans建議org.javafxdata.datasources.io.FileSource並且它可以工作(所有值都被解析並存儲到CSVDataSource中),但CSVDataSource不包含包含列(ds1.getColumns()返回一個0長度的數組)。這將是一個快速的解決方案,但仍然試圖找到一個標準的JavaFx方式.. – AlenBer
@AlenBer編輯的DataFx代碼現在可以正常工作:),並且還添加了標準的JavaFX方式代碼:) – invariant
嗨@invariant,你能檢查出我的帖子? 我遵循你的標準javaFX方式,但仍然有一些問題 http://stackoverflow.com/questions/22129559/insert-dynamic-json-data-into-javafx2-tableview – Arvin