小编Dua*_*des的帖子

JavaFX如何关闭阶段以相同的方式在窗口中使用“ x”按钮

我有一个控制器,它将弹出一个新的阶段:

@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);
}
Run Code Online (Sandbox Code Playgroud)

当通过“ x”按钮关闭另一个阶段时,将执行“ stage.setOnCloseRequest”。但是在那个阶段,我有一个按钮可以关闭:

@FXML
private void onClickExit(ActionEvent event){
    ((Stage) ((Node) event.getSource()).getScene().getWindow()).close();
}
Run Code Online (Sandbox Code Playgroud)

它关闭,但未执行方法“ stage.setOnCloseRequest”。

此方法是否错误,或者是否有一种方法可以完全类似于窗口中的“ x”按钮来关闭弹出窗口?

javafx

3
推荐指数
1
解决办法
612
查看次数

标签 统计

javafx ×1