JavaFX TableView dynamic column and data values

前端 未结 1 560

I\'m testing myself with a simple CSV Viewer using JavaFX and I\'m stuck at populating the table data. I do create the columns dynamically, but the data values are a no-go.

1条回答
  •  無奈伤痛
    2020-12-11 04:49

    use DataFX,which will make your job easier :)

    Example Code :

    DataSourceReader dsr1 = new FileSource("your csv file path");
    String[] columnsArray // create array of column names you want to display 
    CSVDataSource ds1 = new CSVDataSource(dsr1,columnsArray);
    TableView tableView = new TableView();
    tableView.setItems(ds1.getData());
    tableView.getColumns().addAll(ds1.getColumns());
    

    Reference : Introduction to DataFX

    Edit : Standard JavaFX Way

    replace your code :

    for(List dataList : data) {
        table1.setItems(dataList); // Requires an ObservableList!
    }
    

    with

      //  which will make your table view dynamic 
     ObservableList csvData = FXCollections.observableArrayList(); 
    
     for(List dataList : data) {
         ObservableList row = FXCollections.observableArrayList();
        for( String rowData : dataList) {
          row.add(rowData); 
      }
       cvsData.add(row); // add each row to cvsData
    }
    
    table1.setItems(cvsData); // finally add data to tableview
    

    0 讨论(0)
提交回复
热议问题