0

I'm currently trying to make a JavaFX tableview with database. I just a started so mind me doing some things wrong. Anyhow, me and my friend are trying to learn java and we are both stuck at this. I was wondering anyone here could help me. First of all we have the initialize:

I get this error : Caused by: java.lang.NullPointerException at sample.Controller.BuildData(Controller.java:158)

void initialize() {
        {
            columID.setCellValueFactory(new PropertyValueFactory<>("id"));
            columNaam.setCellValueFactory(new PropertyValueFactory<>("naam"));
            columAchternaam.setCellValueFactory(new PropertyValueFactory<>("achternaam"));
            columWachtwoord.setCellValueFactory(new PropertyValueFactory<>("wachtwoord"));
            columWoonplaats.setCellValueFactory(new PropertyValueFactory<>("woonplaats"));
            columStraatnaam.setCellValueFactory(new PropertyValueFactory<>("straatnaam"));
            columHuisnummer.setCellValueFactory(new PropertyValueFactory<>("straatnummer"));
        }
    }

FXML:

@FXML
private TableView<UserModel> usersTable;
@FXML
private TableColumn<UserModel, Integer> columID;
@FXML
private TableColumn<UserModel, String> columNaam;
@FXML
private TableColumn<UserModel, String>  columAchternaam;
@FXML
private TableColumn<UserModel, String>  columWachtwoord;
@FXML
private TableColumn<UserModel, String>  columWoonplaats;
@FXML
private TableColumn<UserModel, String>  columStraatnaam;
@FXML
private TableColumn<UserModel, String>  columHuisnummer;

This is the controller on button click:

public void BuildData() throws  IOException {

        FXMLLoader fxmlLoader = new FXMLLoader();
        fxmlLoader.setLocation(getClass().getResource("usertable.fxml"));
        Scene scene = new Scene(fxmlLoader.load(), 600, 400);
        Stage stage = new Stage();
        stage.setTitle("New Window");
        stage.setScene(scene);
        stage.show();

            try {
                Class.forName("com.mysql.cj.jdbc.Driver");
                conn = DriverManager.getConnection("jdbc:mysql://localhost/bibliotheek?user=root");
                Connection con = conn;

                ResultSet rs = con.createStatement().executeQuery("SELECT * from klanten");

                ObservableList<UserModel> data = FXCollections.observableArrayList();

                while (rs.next()) {
                        UserModel usr = new UserModel();
                        data.add(usr);
                        usr.setId(rs.getInt("id"));
                        usr.setNaam(rs.getString("naam"));
                        usr.setAchternaam(rs.getString("achternaam"));
                        usr.setWachtwoord(rs.getString("wachtwoord"));
                        usr.setWoonplaats(rs.getString("woonplaats"));
                        usr.setStraatnaam(rs.getString("straatnaam"));
                        usr.setStraatnummer(rs.getString("straatnummer"));
                }

                usersTable.setItems(data);

            }
            catch (SQLException sqlf) {
                System.out.println(sqlf.getMessage());
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
    }

UserModel:

package model;

public class UserModel {

    private int id;
    private String naam;
    private String achternaam;
    private String wachtwoord;
    private String woonplaats;
    private String straatnaam;
    private String straatnummer;


    public UserModel(int id, String naam, String achternaam, String wachtwoord, String woonplaats, String straatnaam, String straatnummer) {
        this.id = id;
        this.naam = naam;
        this.achternaam = achternaam;
        this.wachtwoord = wachtwoord;

        this.woonplaats = woonplaats;
        this.straatnaam = straatnaam;
        this.straatnummer = straatnummer;
    }

    public void setId(int id) {
        this.id = id;
    }

    public void setNaam(String naam) {
        this.naam = naam;
    }

    public void setAchternaam(String achternaam) {
        this.achternaam = achternaam;
    }

    public void setWachtwoord(String wachtwoord) {
        this.wachtwoord = wachtwoord;
    }

    public void setWoonplaats(String woonplaats) {
        this.woonplaats = woonplaats;
    }

    public void setStraatnaam(String straatnaam) {
        this.straatnaam = straatnaam;
    }

    public void setStraatnummer(String straatnummer) {
        this.straatnummer = straatnummer;
    }

    public UserModel() {

    }

    public int getId() {
        return id;
    }

    public String getNaam() {
        return naam;
    }

    public String getAchternaam() {
        return achternaam;
    }

    public String getWachtwoord() {
        return wachtwoord;
    }

    public String getWoonplaats() {
        return woonplaats;
    }

    public String getStraatnaam() {
        return straatnaam;
    }

    public String getStraatnummer() {
        return straatnummer;
    }
}

I really hope someone could help me further.

M. le Rutte
  • 3,525
  • 3
  • 18
  • 31

0 Answers0