У меня проблема с классом JavaFX Dialog<R>
.Я создал диалог с пользовательским параметром типа, скажем String
для простоты.Теперь, когда я пытаюсь получить результат диалога, я получаю ClassCastException
.
. Возьмем это простое приложение JavaFX:
@Override
public void start(Stage primaryStage) {
Dialog<String> dialog = new Dialog<>();
dialog.getDialogPane().getButtonTypes().setAll(ButtonType.OK);
String result = dialog.showAndWait().orElse(null);
}
. Когда я нажимаю кнопку ОК, у меня появляется ошибка.стек, который приводит к:
Caused by: java.lang.ClassCastException: javafx.scene.control.ButtonType cannot be cast to java.lang.String
Само собой разумеется, код компилируется отлично.Кажется, что при каждом нажатии кнопки ОК значение диалогового окна принудительно устанавливается на что-то типа ButtonType
.Не тот тип, который вы ожидаете, зная сигнатуру метода.
Это также верно, если я использую метод getResult()
после отображения диалогового окна.
Я использую JVM Oracle 1.8.0_151.
Спасибо за любые идеи.