JavaFX tableview无法正常工作,我在做什么错?

时间:2018-06-21 08:19:52

标签: java javafx

我目前正在尝试使用数据库创建JavaFX tableview。我只是一个开始,所以请记住我做错了一些事情。无论如何,我和我的朋友都在尝试学习Java,而我们都陷入了这一困境。我想知道这里有人能帮助我。首先,我们进行了初始化:

我收到此错误: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;

这是单击按钮时的控制器:

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;
    }
}

我真的希望有人能进一步帮助我。

0 个答案:

没有答案