У меня есть "параллельный" поток, класс расширяемый с помощью Task<Void>. В методе call() есть вызов нового объекта, который должен открыть новое диалоговое окно.
Но этого не происходит. Проследовав по стеку с помощью отладчика, увидел что процесс проваливается в исключение
Никаких ошибок при этом нет, выполнение точно такого же метода в одном потоке работает исправно.
Подскажите, почему так может происходить ? Как из Task вызывать новые (модальные) окна.
Всё изменение графического интерфейса (в том числе открытие окон) должно выполняться в потоке FX приложения. Любые изменения графического интерфейса в других потоках вызывают исключения java.lang.IllegalStateException: Not on FX application thread.
Если в отдельном потоке нужно сделать открытие окна, нужно делать это через Platform.runLater:
Platform.runLater(() -> {
какие-то действия;
});
Сборка персонального компьютера от Artline: умный выбор для современных пользователей