'Take a txt file and Insert to tableview (JavaFX)

I try to insert to tableview from txt file, but I couldn't do it.

This is my txt file.

aa.txt (It contains int A, int B, int F)

0 0 0
1 0 1
0 1 0
1 0 0

This is Product class (information part)

public class Product {

private int A;
private int B;
private int F;

public Product(){
    this.A = 0;
    this.B = 0;
    this.F = 0;
}

public Product(int A, int B, int F){
    this.A = A;
    this.B = B;
    this.F = F;
}

public int getA() {
    return A;
}

public void setA(int a) {
    this.A = a;
}

public int getB() {
    return B;
}

public void setB(int b) {
    this.B = b;
}

public int getF() {
    return F;
}

public void setF(int f) {
    this.F = f;
}  }

This is table view part in the code but I can't carry on this part

TableColumn<Product, Integer> aColumn = new TableColumn<>("A");
aColumn.setMinWidth(100);
aColumn.setCellValueFactory(new PropertyValueFactory<>("A"));

TableColumn<Product, Integer> bColumn = new TableColumn<>("B");
bColumn.setMinWidth(100);
bColumn.setCellValueFactory(new PropertyValueFactory<>("B"));

TableColumn<Product, Integer> fColumn = new TableColumn<>("F");
fColumn.setMinWidth(100);
fColumn.setCellValueFactory(new PropertyValueFactory<>("F"));

table = new TableView<>();
table.setItems(getProduct());
table.getColumns().addAll(aColumn, bColumn, fColumn);

Please help me about this topic..



Solution 1:[1]

You can try splitting the data you get from the file using the split() method:

split(String regex)

Splits this string around matches of the given regular expression.

private void getProductsFromFile() {
    try {
        BufferedReader br = new BufferedReader(new FileReader(new File("path/to/file.txt"));
        String line;
        String[] array;

        while ((line = br.readLine()) != null){
            array = line.split(" ");
            table.getItems().add(new Product(Integer.parseInt(array[0]), Integer.parseInt(array[1]), Integer.parseInt(array[2])));
        }

        br.close();

    }catch (Exception ex){
        ex.printStackTrace();
    }
}

Then remove table.setItems(getProduct());

and call this method getProductsFromFile() that you just created, so your code should look like this:

TableColumn<Product, Integer> aColumn = new TableColumn<>("A");
aColumn.setMinWidth(100);
aColumn.setCellValueFactory(new PropertyValueFactory<>("A"));

TableColumn<Product, Integer> bColumn = new TableColumn<>("B");
bColumn.setMinWidth(100);
bColumn.setCellValueFactory(new PropertyValueFactory<>("B"));

TableColumn<Product, Integer> fColumn = new TableColumn<>("F");
fColumn.setMinWidth(100);
fColumn.setCellValueFactory(new PropertyValueFactory<>("F"));

table = new TableView<>();
getProductsFromFile();
table.getColumns().addAll(aColumn, bColumn, fColumn);

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Community