Устранение неполадок при заполнении таблицы с помощью Sqlite JavaFx

Я пытаюсь заполнить табличное представление с помощью Javafx, база данных test.db содержит таблицу складов с тремя полями, идентификатором, именем и емкостью. Следующий код является примером программы

import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.scene.control.Button;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.control.TableColumn;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;

public class javafxsqliteconntable extends Application {


@Override
public void start(Stage primaryStage){

       primaryStage.setTitle("Que onda");
       Label etiqueta = new Label("Hola Mundo");
       Button boton = new Button("Presionar aqui");
       
         TableView tableView = new TableView();
         
         TableColumn<Integer, Person> column1 = new TableColumn<>("Id");
        column1.setCellValueFactory(new PropertyValueFactory<>("id"));
         
        TableColumn<String, Person> column2 = new TableColumn<>("name");
        column2.setCellValueFactory(new PropertyValueFactory<>("Name"));

        TableColumn<Double, Person> column3 = new TableColumn<>("capacity");
        column3.setCellValueFactory(new PropertyValueFactory<>("Capacity"));
        
        tableView.getColumns().add(column1);
        tableView.getColumns().add(column2);
        tableView.getColumns().add(column3);
        
         VBox vbox = new VBox(20, etiqueta, boton, tableView);
         ObservableList<Person> data = FXCollections.observableArrayList();
        String sql = "SELECT id, name, capacity FROM warehouses";
        
        try (Connection conn = this.connect();
             Statement stmt  = conn.createStatement();
             ResultSet rs    = stmt.executeQuery(sql)){
          
            while (rs.next()) {
                System.out.println(rs.getInt("id") +  "\t" + rs.getString("name") + "\t" + rs.getDouble("capacity"));   
               data.addAll(new Person(rs.getInt("id"), rs.getString("name"), rs.getDouble("capacity")));
            }
             
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }

        Scene scene = new Scene(vbox, 300, 500);
        primaryStage.setScene(scene);

primaryStage.show();
}
public class Person {
    private int Id;
    private String Nombre = null;
    private Double Capacidad = null;

   public Person(int id, String nombre, Double capacidad) {
       this.Id=id;
       this.Nombre = nombre;
        this.Capacidad = capacidad;
    }

     public int getId(){
     return Id;
     
     }
     
    public String getnombre() {
        return Nombre;
    }

 
    public Double getcapacidad() {
        return Capacidad;
    }

}

 private Connection connect() {
         String url ="jdbc:sqlite:test.db";
        Connection conn = null;
        try {
            conn = DriverManager.getConnection(url);
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }
        return conn;
    }

public static void main(String[] args) {
        launch(args);
    }

}

когда я скомпилировал, у меня нет никаких ошибок, соединение sqlite успешно установлено, и строка

 System.out.println(rs.getInt("id") +  "\t" + rs.getString("name") + "\t" + rs.getDouble("capacity"));

дает правильную информацию в командной строке консоли, но

data.addAll(new Person(rs.getInt("id"), rs.getString("name"), rs.getDouble("capacity"))); 

ничего не дает мне в Tableview, я что-то упустил?, я сделал наблюдаемый список, и у меня уже есть человек класса внутри программы. любая помощь приветствуется, чтобы получить данные, заполненные в tableview javafx. Спасибо заранее, любая помощь приветствуется.


person Omar Elio Torres Castillo    schedule 13.07.2020    source источник
comment
параметры типа столбцов неверны   -  person kleopatra    schedule 14.07.2020
comment
Кроме того, это должен быть файл TableView<Person>. Никогда не используйте необработанные типы   -  person James_D    schedule 14.07.2020
comment
github.com/sedj601/SQLitePersonTableViewExample   -  person Sedrick    schedule 14.07.2020
comment
Проверьте этот ответ: stackoverflow.com /вопросы/44097537/   -  person Cem Ikta    schedule 14.07.2020
comment
все тот же поиск и устранение неисправностей, заполнить Dataview с помощью JavaFX очень сложно, это было проще с java swing   -  person Omar Elio Torres Castillo    schedule 15.07.2020