In der Main.java habe ich Folgendes stehen:

private Controller mainController;
...

public void start(Stage stage) {
FXMLLoader loader = new FXMLLoader(getClass().getClassLoader().getResource("Main.fxml"));
root = loader.load();

mainController = loader.getController();
...
}

public Controller getController() {
    return mainController;
}

Damit könnte ich in einer ganz anderen Klasse Objekte aus dem Controller ansprechen:

Controller controller = Main.getInstance().getController();

Wenn ich jetzt aber einen weiteren Controller hinzuziehe:

private AndererController andererController;

public AndererController getAndererController() {
    return andererController;
}

Wird mir

Caused by: java.lang.NullPointerException: Cannot read field "OBJEKT" because "andererController" is null

ausgeworfen. Warum sagt der mir, dass andererController null ist? Wie gehts richtig?

---

Ich habe nämlich nested Controller hinzugezogen, um etwas Ordnung reinzubringen, weil die (vorher) einzige Controller-Klasse an die 850 Zeilen Code reichte und sehr viele Methoden beinhaltete.

  • Hinzu werden noch zwei weitere Controller-Klassen kommen.
  • Ich habe eine fxml-Datei, wo drei weitere fxml-Dateien inkludiert werden (fx:include)

Danke!