現在、JavaFXを使用してダイアログを作成しています。 Dialog自体は非常にうまくいきましたが、今はテキストフィールドに記入するのを忘れたときにユーザーに警告する入力検証を追加しようとしています。 ここで私の質問が来る:ダイアログが結果コンバータの内部で閉じるのを防ぐことは可能ですか?このように:JavaFXダイアログが閉じるのを防ぐ
ButtonType buttonTypeOk = new ButtonType("Okay", ButtonData.OK_DONE);
dialog.getDialogPane().getButtonTypes().add(buttonTypeOk);
dialog.setResultConverter((ButtonType param) -> {
if (valid()) {
return ...
} else {
Alert alert = new Alert(Alert.AlertType.WARNING);
alert.setHeaderText("Pleas fill all fields!");
alert.showAndWait();
//prevent dialog from closing
}
});
私はエラーがresaultコンバータ内部でスローされた場合、ダイアログが近いdosn'tことに気づいたが、これはこの問題を解決するための良い方法であるように思われません。
このように問題を解決できない場合は、this postに記載されているようにボタンを無効にすることができます。しかし、私はボタンを有効にしておき、メッセージを表示することを好むでしょう。
ありがとうございます!あなたが実際のJavadocで説明されるダイアログでデータ検証を管理することになっている方法
validateAndStore()メソッドとは何ですか?それは何をすべきか? –
@EdvBeqこのメソッドは存在しません。アイデアを表示するだけです。入力データを検証し、検証が成功した場合は何か他の処理を実行するのはカスタムメソッドだけです。 trueを返す場合はダイアログが閉じられ、そうでない場合はダイアログが開いたままになるようにイベントが消費されます –