javafxアプリケーションのデフォルトの終了プロシージャを変更して、ユーザーに確認ダイアログを表示したい。ユーザーが[OK]を選択すると、確認ダイアログがアプリケーションを終了し、ユーザーが[キャンセル]を選択したときにアプリケーションが実行されたままになります。ユーザーがアプリケーションを終了しようとしたときに確認ダイアログを表示する(Xボタンを押す)
javaFXでこれを行うにはどうすればよいですか?
javafxアプリケーションのデフォルトの終了プロシージャを変更して、ユーザーに確認ダイアログを表示したい。ユーザーが[OK]を選択すると、確認ダイアログがアプリケーションを終了し、ユーザーが[キャンセル]を選択したときにアプリケーションが実行されたままになります。ユーザーがアプリケーションを終了しようとしたときに確認ダイアログを表示する(Xボタンを押す)
javaFXでこれを行うにはどうすればよいですか?
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();
});
});
編集後に機能します。どうもありがとうございました。 –
問題ありません。似たような機能を持つ別のプログラムのコードを修正しましたが、私のスタイルではなかったため、編集を忘れることはほとんどありませんでした。お役に立てて嬉しいです! –
あなたは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());
});
私はメインクラスでstop()メソッドをオーバーライドしようとした
私はアラートを使用した例を示していたでしょうが、私はこれまでの不具合を経験し、より安全なオプションを選択しました。 –
ので、アラートを使用することができますが、それはまだ私は最高の答えを見つけることが確認プロンプトが –
を表示しても、前にアプリケーションを閉じ、このスレッド内にあります: http://stackoverflow.com/questions/13727314/prevent-or-cancel-exit-javafx-2 –