当用户尝试退出应用程序时显示确认对话框(按X按钮)

时间:2016-12-20 02:13:43

标签: java javafx javafx-8

我想修改javafx应用程序中的默认退出程序,以向用户显示确认对话框。如果用户选择“确定”,确认对话框将退出应用程序,并在用户选择“取消”时保持应用程序运行。

我应该怎么做才能在javaFX中做到这一点?

2 个答案:

答案 0 :(得分:1)

primaryStage.addEventFilter(WindowEvent.WINDOW_CLOSE_REQUEST, e->{
    e.consume();
    Popup popup = new Popup();
    HBox buttons = new HBox();
    Button close = new Button("close");
    Button cancel = new Button("cancel");
    buttons.getChildren().addAll(close,cancel);
    buttons.setPadding(new Insets(5,5,5,5));
    popup.getContent().add(buttons);
    popup.show(primaryStage);
    close.setOnAction(ex -> {
        Platform.exit();
    });
    cancel.setOnAction(ec -> {
        popup.hide();
    });
});

答案 1 :(得分:1)

您可以使用自8.40起的警报

stage.setOnCloseRequest(evt -> {
    Alert alert = new Alert(AlertType.CONFIRMATION);
    alert.setTitle("Confirm Close");
    alert.setHeaderText("Close program?");
    alert.showAndWait().filter(r -> r != ButtonType.OK).ifPresent(r->evt.consume());
});