Obecnie tworzę okno dialogowe za pomocą JavaFX. Sam Dialog działa bardzo dobrze, ale teraz próbuję dodać sprawdzanie danych wejściowych, które ostrzega użytkownika, gdy zapomni wypełnić pole tekstowe. I tu pojawia się moje pytanie: czy można zapobiec zamknięciu okna w konwerterze wyników? Tak:Nie zezwalaj na zamykanie okna dialogowego 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
}
});
zauważyłem, że dialog dosn't blisko, jeśli błąd został wyrzucony wewnątrz konwertera resault ale to nie wydaje się być dobrym sposobem na rozwiązanie tego problemu.
Jeśli nie jest możliwe rozwiązanie problemu w ten sposób, mogę wyłączyć przycisk zgodnie z opisem w this post. Ale wolałbym, aby przycisk był włączony i wyświetlał komunikat.
Z góry dziękuję!
Co to jest metoda validateAndStore()? Co ma robić? –
@EdvBeq ta metoda nie istnieje, chodzi tylko o pokazanie idei. Jest to tylko niestandardowa metoda, która sprawdza poprawność danych wejściowych i potencjalnie robi coś innego, jeśli sprawdzanie poprawności przebiegło pomyślnie. Jeśli zwróci true, okno dialogowe zostanie zamknięte, w przeciwnym razie zdarzenie zostanie zużyte w taki sposób, że okno dialogowe pozostanie otwarte –