JavaFX Gesetzte Variable in einem Controller im Controller laden

Dyed

Mitglied
Hallo,
ich habe ein StartScreen und dort gibt es vierschiedene Buttons und je nachdem, welchen Button ich gedrückt habe, soll ein anderer Inhalt im neuen Screen geladen werden.
Das Aufrufen vom neuen Screen funktioniert, nur ich weiß nicht wie ich die wichtige Variable von dem StartScreen bekomme.

Mein Ansatz war folgender:
Java:
 FXMLLoader loader = new FXMLLoader(getClass().getResource("StartWindow.fxml"));
StartWindowController controller = loader.getController();
System.out.println("Von mainview: " + controller.getLoadingSection());

Hier bekomme ich aber eine Fehlermeldung.
Außerdem habe ich ein Verständnisproblem:
Wenn der Code oben funktionieren sollte, dann erstelle ich ja ein neues Object vom Controller und die wichtige Variable, die ich erst durch drücken eines Buttons setze, würde ja beim erstellen noch Null sein oder täusche ich mich?
 
Hab mittlerweile die Lösung gefunden, aber bekomme teilweise ein Null zurück und teilweise das erwartete Ergebnis.

Java:
 try {
            Stage stage = new Stage(); 
            FXMLLoader loader = new FXMLLoader();
            Parent root = loader.load(getClass().getResource("StartWindow.fxml").openStream());
            StartWindowController swc = loader.<StartWindowController>getController();
            Scene scene = new Scene(root);
            stage.setScene(scene);
           
            stage.initModality(Modality.APPLICATION_MODAL);
            questionsData = swc.loadingQuestions;
            System.out.println("MainWindow" + Arrays.toString(questionsData));
            System.out.println(swc.blub);
            System.out.println(swc.getLoadingSection());
           
            //stage.show();
           
          
           
            } catch(Exception e) {
                e.printStackTrace();
            }

Beim ersten System.out gibt es null.
Beim zweiten den richtigen Wert und beim dritten null.
Kann mir jemand weiterhelfen?
 

Zurück
Oben