在用户从JavaFX的对话框中选择一个选项之前,可以通过以下方法防止primaryStage关闭:
Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
alert.setTitle("Confirmation Dialog");
alert.setHeaderText("Are you sure?");
alert.setContentText("Do you want to proceed?");
Optional<ButtonType> result = alert.showAndWait();
if (result.isPresent() && result.get() == ButtonType.OK) {
// 用户选择了确定按钮
// 执行相应的操作
} else {
// 用户选择了取消按钮或关闭对话框
// 可以选择不执行任何操作或者执行相应的取消操作
}
// 创建自定义对话框
Dialog<ButtonType> dialog = new Dialog<>();
dialog.setTitle("Custom Dialog");
dialog.setHeaderText("Are you sure?");
dialog.setContentText("Do you want to proceed?");
// 创建关闭按钮
Button closeButton = new Button("Close");
dialog.getDialogPane().getButtonTypes().addAll(ButtonType.OK, ButtonType.CANCEL, ButtonType.CLOSE);
dialog.getDialogPane().lookupButton(ButtonType.CLOSE).setVisible(false);
// 设置关闭按钮的事件处理程序
dialog.setOnCloseRequest(event -> {
event.consume(); // 阻止默认的关闭行为
// 检查用户选择的选项
ButtonType result = dialog.getResult();
if (result == ButtonType.OK) {
// 用户选择了确定按钮
// 执行相应的操作
dialog.close();
} else if (result == ButtonType.CANCEL) {
// 用户选择了取消按钮
// 可以选择不执行任何操作或者执行相应的取消操作
dialog.close();
}
});
dialog.showAndWait();
通过以上方法,你可以在用户从JavaFX的对话框中选择一个选项之前防止primaryStage关闭,并根据用户的选择执行相应的操作。
领取专属 10元无门槛券
手把手带您无忧上云