Skip to content

Instantly share code, notes, and snippets.

@alamenai
Last active January 1, 2023 22:32
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alamenai/7768b89ba27c243cf6477cd9cfc58193 to your computer and use it in GitHub Desktop.
Save alamenai/7768b89ba27c243cf6477cd9cfc58193 to your computer and use it in GitHub Desktop.
Java example read csv file and display the content in JavaFX TableView.
package javafxcsvtableview;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.application.Application;
import javafx.beans.property.SimpleStringProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class JavaFXCSVTableView extends Application {
public class Record {
//Assume each record have 6 elements, all String
private SimpleStringProperty f1, f2, f3, f4, f5, f6;
public String getF1() {
return f1.get();
}
public String getF2() {
return f2.get();
}
public String getF3() {
return f3.get();
}
public String getF4() {
return f4.get();
}
public String getF5() {
return f5.get();
}
public String getF6() {
return f6.get();
}
Record(String f1, String f2, String f3, String f4,
String f5, String f6) {
this.f1 = new SimpleStringProperty(f1);
this.f2 = new SimpleStringProperty(f2);
this.f3 = new SimpleStringProperty(f3);
this.f4 = new SimpleStringProperty(f4);
this.f5 = new SimpleStringProperty(f5);
this.f6 = new SimpleStringProperty(f6);
}
}
private final TableView<Record> tableView = new TableView<>();
private final ObservableList<Record> dataList
= FXCollections.observableArrayList();
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("CVS");
Group root = new Group();
TableColumn columnF1 = new TableColumn("f1");
columnF1.setCellValueFactory(
new PropertyValueFactory<>("f1"));
TableColumn columnF2 = new TableColumn("f2");
columnF2.setCellValueFactory(
new PropertyValueFactory<>("f2"));
TableColumn columnF3 = new TableColumn("f3");
columnF3.setCellValueFactory(
new PropertyValueFactory<>("f3"));
TableColumn columnF4 = new TableColumn("f4");
columnF4.setCellValueFactory(
new PropertyValueFactory<>("f4"));
TableColumn columnF5 = new TableColumn("f5");
columnF5.setCellValueFactory(
new PropertyValueFactory<>("f5"));
TableColumn columnF6 = new TableColumn("f6");
columnF6.setCellValueFactory(
new PropertyValueFactory<>("f6"));
tableView.setItems(dataList);
tableView.getColumns().addAll(
columnF1, columnF2, columnF3, columnF4, columnF5, columnF6);
VBox vBox = new VBox();
vBox.setSpacing(10);
vBox.getChildren().add(tableView);
root.getChildren().add(vBox);
primaryStage.setScene(new Scene(root, 700, 250));
primaryStage.show();
readCSV();
}
private void readCSV() {
String CsvFile = "/test/test.csv";
String FieldDelimiter = ",";
BufferedReader br;
try {
br = new BufferedReader(new FileReader(CsvFile));
String line;
while ((line = br.readLine()) != null) {
String[] fields = line.split(FieldDelimiter, -1);
Record record = new Record(fields[0], fields[1], fields[2],
fields[3], fields[4], fields[5]);
dataList.add(record);
}
} catch (FileNotFoundException ex) {
Logger.getLogger(JavaFXCSVTableView.class.getName())
.log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(JavaFXCSVTableView.class.getName())
.log(Level.SEVERE, null, ex);
}
}
public static void main(String[] args) {
launch(args);
}
}
@sidharthskumar
Copy link

can u send a screenshot off how it looks?

@alamenai
Copy link
Author

@sidharthskumar, I'm so sorry, I did not have screenshot for it.

@qdilmac
Copy link

qdilmac commented Jan 1, 2023

This code made me understand the topic much more easily. Thanks a lot!

@alamenai
Copy link
Author

alamenai commented Jan 1, 2023

@qdilmac , Thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment