我正在使用JavaFX創建一個對話框。對話框它自我工作得很好,但現在我試圖添加一個輸入驗證,當用戶忘記填寫文本字段時會警告用戶。 這裏來了我的問題:是否有可能阻止對話框在結果轉換器內關閉?就像這樣:阻止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轉換器內部但這並不似乎是解決這個問題的好辦法。
如果通過這種方式無法解決問題,我可以按照this post中所述禁用按鈕。但我寧願保持啓用按鈕並顯示一條消息。
預先感謝您!
什麼是validateAndStore()方法?它應該做什麼? –
@EdvBeq這個方法不存在,它只是爲了展示這個想法。只有一種自定義方法可以驗證輸入數據,如果驗證成功,可能會執行其他操作。如果它返回true,則對話框將被關閉,否則事件將被消耗,使對話框保持打開狀態 –