Much like this question, I am trying to update a TableView in JavaFX. I have adopted the solution using DataFX.
My code :
File file = new File(path);
if(file.exists() && file.canRead()) {
DataSourceReader dsr1 = new FileSource(file);
String[] columnsArray = {"firstName", "lastName"};
CSVDataSource ds1 = new CSVDataSource(dsr1, columnsArray);
System.out.println("CSV : " + ds1.getData().size()); // outputs 0
//Below is commented out since I don't have data : source of the error
//tblAthleteList.setItems(ds1.getData());
//tblAthleteList.getColumns().addAll(ds1.getColumns());
}
Here is a view of my test .csv file :
firstName, lastName
first, last
test, tester
I am using JavaFX 2, DataFX 1.0 and building in e(fx)clipse
Edit
Have changed the code a bit to use the FileSource(File f) constructor to see if this changes anything. Turns out I am trying to print something from the CSVDataSource and I always get a NullPointerException. Therefore assumming that the CSVDataSource doesn’t get any data. From examples I can find this is being done correctly. I can read the file using a simple BufferedReader and a loop.
Edit 2
Edited the question… I am now specifying that the error is in the fact that no data gets pulled into the CSVDataSource from the .csv file. The line ds1.getData().size() returns 0. Posted a very simple .csv file I am using. EOL consists of CR + LF and edited in Notepad++ (no Excel superfluous characters).
make sure column names in
columnsArrayare exactly equal to column names in CSV file (case sensitive).i got the similar exception when i put my column name as
yearin code but in my csv file itsYear.Update According to Edit in Question :
remove space between
,andlastNamein file or put" lastName"as column name in code 🙂