public Splash_Controller( final JavaFX_Server_Template main, Splash_Model model, Splash_View view) { // final JavaFX_App_Template main -> Da die Main-Klasse sich selbst übergibt, kann // der Controller jetzt so auf Methoden in der Main-Klasse zugreifen super(model, view); // We could monitor the progress property and pass it on to the progress bar // However, JavaFX can also do this for us: We just bind the progressProperty of the // progress bar to the progressProperty of the task. view.progress .progressProperty() .bind( model.initializer .progressProperty()); // Aktualisieren(Listener)/Verbinden den Ladebalken aus dem // model mit dem view // The stateProperty tells us the status of the task. When the state is SUCCEEDED, // the task is finished, so we tell the main program to continue. // Below are two equivalent implementations - only one of these should be used! // Using an anonymous class // model.initializer.stateProperty().addListener( // new ChangeListener<Worker.State>() { // @Override // public void changed( // ObservableValue<? extends Worker.State> observable, // Worker.State oldValue, Worker.State newValue) { // if (newValue == Worker.State.SUCCEEDED) // main.startApp(); // } // }); // Using a lambda expression model .initializer .stateProperty() .addListener( // Beobachten den Ladebalken (observable, oldValue, newValue) -> { if (newValue == Worker.State .SUCCEEDED) // Wenn Ladebalken fertig geladen wurde (resourcen jetzt geladen), // starte im JavaFX_App_Template die methode "startApp()" welche // die MVC-Komponenten lädt main .startApp(); // Über die im Parameter übergebenen Objekte (bzw. das Main-Klasse // Objekt selbst) kann jetzt auf die Methode startApp() zugegriffen // werden }); }