JavaFx ProgressIndicator al cargar el panel (GUI)

En mi aplicación, tengo que construir grandes paneles con mucho contenido. Mostraré un ProgressIndicator mientras se carga la GUI.

Mi primera prueba, mostraré un ProgressIndicator mientras agrego muchas pestañas en un TabPane.

Ese es mi código de prueba:

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

Pero la aplicación mostrará la ventana si la tarea ha finalizado. Si reemplazo las líneas dentro del ciclo for conThread.sleep(10) la aplicación muestra el indicador y, después de todo, duerme, muestra la GUI.

¿Cómo puedo mostrar un indicador mientras la GUI no está cargada?

Respuestas a la pregunta(2)

Su respuesta a la pregunta