JavaFx ProgressIndicator beim Laden des Fensters (GUI)

In meiner Anwendung muss ich große Fenster mit viel Inhalt erstellen. Ich zeige einen ProgressIndicator, während die GUI geladen wird.

ei meinem ersten Test zeige ich einen ProgressIndicator, während ich viele Tabs zu einem TabPane hinzufüg

Das ist mein Testcode:

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

Aber die Anwendung zeigt das Fenster an, wenn die Aufgabe beendet ist. Wenn ich die Zeilen in der for-Schleife durch @ ersetThread.sleep(10) Die Anwendung zeigt den Indikator an, und im Ruhezustand zeigt sie schließlich die grafische Benutzeroberfläche an.

Wie kann ich einen Indikator anzeigen, während die GUI noch nicht geladen ist?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage