JavaFx ProgressIndicator во время загрузки панели (GUI)

В моем приложении мне приходится создавать большие панели с большим количеством контента. Я покажу ProgressIndicator во время загрузки графического интерфейса.

В моем первом тесте я покажу ProgressIndicator, в то время как я добавляю много вкладок в TabPane.

Это мой тестовый код:

public class SampleController implements Initializable {
    private TabPane tabPane;
    @FXML
    private BorderPane borderPane;

    ProgressIndicator myProgressIndicator;
    Task<Void> myLongTask;


    @Override
    public void initialize(URL location, ResourceBundle resources)
    {
        myProgressIndicator = new ProgressIndicator();
        Pane p1 = new Pane(myProgressIndicator);
        tabPane = new TabPane();
        Pane p2 = new Pane(tabPane);


        myLongTask = new Task<Void>()
        {
        @Override
        protected Void call() throws Exception
        {
        for (int i = 1; i < 1000; i++)
        {
//          Thread.sleep(10);
            Tab newTab = new Tab("Number:" + i);
            tabPane.getTabs().add(newTab);
        }
        return null;
        }
        };
        borderPane.centerProperty().bind(Bindings.when(myLongTask.runningProperty()).then(p1).otherwise(p2));

        new Thread(myLongTask).start();
    }
}

Но приложение покажет окно, если задание выполнено. Если я заменим строки внутри цикла сThread.sleep(10) приложение показывает индикатор и, в конце концов, спит, оно показывает графический интерфейс.

Как я могу показать индикатор, пока графический интерфейс еще не загружен?

Ответы на вопрос(2)

Ваш ответ на вопрос