【发布时间】:2016-06-15 18:55:34
【问题描述】:
我有一个控制器,它以弹出窗口的形式打开一个新阶段:
@FXML
private void onClickPayments(ActionEvent event) throws IOException{
FXMLLoader loader = new FXMLLoader(getClass().getResource("ClientPayments.fxml"));
Parent root = (Parent) loader.load();
ClientPaymentsController controller = (ClientPaymentsController) loader.getController();
Scene scene = new Scene(root);
Stage stage = new Stage();
stage.setScene(scene);
stage.initModality(Modality.APPLICATION_MODAL);
stage.setResizable(false);
stage.setOnCloseRequest((WindowEvent we) -> {
clientBLL.retrieve(clientID);
updateWarning();
});
stage.show();
controller.setClientID(clientID);
}
当另一个阶段被“x”按钮关闭时,“stage.setOnCloseRequest”被执行。但在那个阶段,我有一个关闭按钮:
@FXML
private void onClickExit(ActionEvent event){
((Stage) ((Node) event.getSource()).getScene().getWindow()).close();
}
它关闭了,但方法“stage.setOnCloseRequest”没有被执行。
这种方法是错误的还是有办法以与窗口中的“x”按钮完全相同的方式关闭弹出窗口?
【问题讨论】:
标签: javafx