Hallo miteinander. Ich stehe gerade vor folgendem Problem: Ich habe ein Hauptfenster, diese hat verschiedene Funktionen, bei einer davon öffnet sich ein Popup Fenster indem man Daten eingeben kann. Diese Daten sollen mittels einer Methode die im HauptfensterController steht und im PopupfensterController aufgerufen wird zum Hauptfenster übertragen werden, wenn im Popupfenster auf einen Button geklickt wird. Im Hauptfenster soll mit der aufgerufenen Methode dann auch direkt mit den Daten ein Objekt erstellt werden. Wenn ich nun im Popupfenster in das Textfield etwas eingebe und auf den Button klicke erhalte ich eine Nullpointerexception die auf die Zeile im Controller verweist in der die Methode aus dem Hauptfenstercontroller steht. Kann mir da jemand weiterhelfen? Oder hat jemand einen anderen Ansatz das Problem zu lösen? Vielen Dank schon mal für eure Hilfe!
Hier der Code vom Hauptfenstercontroller:
Und hier der Code vom Popupfenstercontroller:
Hier der Code vom Hauptfenstercontroller:
Java:
//Methode zum Übertragen der Daten und erstellen des Objekts
public void qErstellen(String laenge) {
Quadratisch quadratisch = new Quadratisch(Double.parseDouble(laenge));
//hier wird das erstellte Objekt in einer ArrayList gespeichert
haufen.add(quadratisch);
}
//Methode mit der das Popupfenster aufgerufen wird
public void erstelleQStein(ActionEvent event) throws Exception{
//Laden des FXML Dokuments, welches das nächste Fenster darstellt
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("Quadratisch.fxml"));
Parent qParent = loader.load();
QuadratischController controller = loader.getController();
//Erstellen einer neuen Stage
Stage stage = new Stage();
stage.initModality(Modality.APPLICATION_MODAL);
//aufrufen der Stage mit neuer Scene
stage.setScene(new Scene(qParent));
stage.show();
}
Und hier der Code vom Popupfenstercontroller:
Java:
@FXML public TextField kantenlaengeT;
private HauptfensterController hController;
//wird beim Klicken auf den Button aufgerufen
public void changeScreen(ActionEvent event) throws Exception {
//aufrufen der Methode aus dem Hauptfenstercontroller
hController.qErstellen(kantenlaengeT.getText());
}