我正在尝试使用带有datafx扩展名的csv文件中的数据填充TableView。
不幸的是,tableview是空的,我无法在任何地方找到任何表明我的错误的例子。
DataSourceReader dsr1 = new FileSource("Example3.csv");
CSVDataSource ds1 = new CSVDataSource(dsr1);
TableView table1 = new TableView();
table1.setItems(ds1.getData());
table1.getColumns().addAll(ds1.getColumns());
System.out.println("#ds1 " + ds1.getData().size()); //returns zero
代码不会抛出异常,这使它更加神秘。
答案 0 :(得分:2)
即使问题是使用DataFX扩展来填充TableView,这里是一个没有DataFX的解决方案:
创建一个表示tableView列表项的类,例如:
public class YourItem {
private String itemID;
private String itemTitle;
public String getItemID() {
return itemID;
}
public void setitemID(String itemID) {
this.itemID = itemID;
}
//getter and setter for the other vars, I am lazy. }
解析您的csv文件并返回List<YourItem>
有几个教程和示例,你可以在这里找到一个:
http://www.mkyong.com/java/how-to-read-and-parse-csv-file-in-java/重要的是,您要创建List
个YourItem
个对象,其中每一行都是YourItem
个对象
将您的List<YourItem>
转换为ObservableList<YourItem>
ObservableList<YourItem> obsList = FXCollections.observableArrayList(yourList);
最后将项目设置为TableView: 我不会提到您需要为TableView创建列
TableView<YourItem> test = new TableView<YourItem>();
test.setItems(obsList);