JavaFx ProgressIndicator ao carregar o painel (GUI)

No meu aplicativo, tenho que criar painéis grandes com muito conteúdo. Vou mostrar um ProgressIndicator enquanto a GUI está carregando.

Meu primeiro teste, mostrarei um ProgressIndicator enquanto adiciono muitas guias a um TabPane.

Esse é o meu código de teste:

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();
    }
}

Mas o aplicativo mostrará a janela se a tarefa terminar. Se eu substituir as linhas dentro do loop for porThread.sleep(10) o aplicativo mostra o indicador e, afinal, dorme, mostra a GUI.

Como posso mostrar um indicador enquanto a GUI ainda não está carregada?

questionAnswers(2)

yourAnswerToTheQuestion