如何从javafx中的其他表单控制器刷新表视图?

时间:2016-12-06 07:40:57

标签: javafx

我的UserVerwaltungForm.java中有以下方法:

@FXML
private void clickBtnAdd() {
    try {
        Parent root = FXMLLoader.load(getClass().getClassLoader().getResource("view/AddForm.fxml"));
        Scene scene = new Scene(root,400,450);
        Stage s = new Stage();
        s.setScene(scene);
        s.show();
    } catch (Exception e) {
        e.printStackTrace();
    }

}

在这里,我打开一个新的AddForm并在那里添加一些数据库。我是这样做的:

@FXML
private void clickBtnAdd() {
    try {
        con = DBManager.getConnection();
        stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
        stmt.executeUpdate("insert into tbl values (" + PLACEHOLDER_ID + ", '" + tfUsername.getText() + "', '"
                + tfFirstname.getText() + "', '" + tfLastname.getText() + "', '" + tfPassword.getText() + "', '"
                + tfEmail.getText() + "', " + tfBodyWeight.getText() + ", " + tfBodyHeight.getText() + ", "
                + tfActivityPoints.getText() + ", '" + tfBirthdate.getText() + "')");
        stmt.execute("commit");
    } catch (SQLException e) {
        System.err.println("Error at stmt or rs: " + e.getMessage());
    }

    DBManager.close(stmt);
    DBManager.close(con);

    Stage stage = (Stage) btnAdd.getScene().getWindow();
    stage.close();
}

如果我按下AddForm中的按钮,我想从UserVerwaltungForm调用此方法:

public void loadDataFromDatabase() {
    tbl.getItems().removeAll(tbl.getItems());

    setCellConfigurations();

    try {
        con = DBManager.getConnection();
        stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
        rs = stmt.executeQuery("select b.* from user_bsd b");
    } catch (SQLException e) {
        System.err.println("Error at stmt or rs: " + e.getMessage());
    }

    if (rs != null) {
        try {
            while (rs.next()) {
                factory = new Factory(rs);
                u = factory.getUser();
                tbl.getItems().add(u);
            }
        } catch (SQLException e) {
            System.err.println("Error at rs.next(): " + e.getMessage());
        }
    }

    DBManager.close(rs);
    DBManager.close(stmt);
    DBManager.close(con);
}

您知道吗?按下按钮后我应该在loadFromDatabase中调用AddFormController方法?

0 个答案:

没有答案