Когда в твоём приложение появляется работа, которая выполняется довольно долго, как например твои циклы, это останавливает обновление UI в целом. Чтобы твой код работал его нужно запустить в отдельном потоке, а так как JavaFX не многопоточна, то операции типа setProgress(double v) должны быть возвращены обратно в главный поток приложения методом Platform.runLater().
Platform.runLater(() -> progress.setProgress( step / size ));
А использовать Swing классы для работы с JavaFX, как мне кажется, не правильно.