Хочу вывести Alert окно, которое будет закрываться после того как выполнится задача из другого класса.
@FXML
private void countAll() {
if (checks.checkAll(dateFrom, dateTo, choiceBox.getValue())) {
int id = checks.choiceID(choiceBox.getValue());
try {
ForThread forThread = new ForThread();
forThread.start();
} catch (Exception e) {
System.out.println("ошибка");
}
}
}
class ForThread implements Runnable{
Thread thrd;
@Override
public void run() {
mylert.setTitle(null);
mylert.setHeaderText(null);
mylert.setResizable(false);
mylert.show(); // тут вызываю алерт окно.
doSomethingExecutableMethod(); //этот метод выполняется очень медленно
mylert.close();
}
public void start() {
System.out.println("Thread started");
if (thrd == null) {
thrd= new Thread(this);
thrd.start();
}
}
если нажимаю ОК(т.е. закрываю это алерт окно кнопкой из нее), до выполнения долгого метода, то ошибки нет. если жду пока сработает mylert.close(); то получаю следующую ошибку.
Not on FX application thread;
Как я понял, этот ранейбл метод не имеет права трогать фрейм приложения. у меня задача вывести алерт, который будет висеть пока не выполнится долгий метод, таким образом дает знать, что метод еще не выполнился...
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости