Wie greife ich von einer anderen Controller-Klasse in JavaFX auf ein UI-Element zu?

Ich habe eine JavaFX / Java 8-Anwendung, die mit NetBeans 8 (NrSceneBuilder).

Meine Anwendung verfügt über ein Hauptfenster mit einer eigenen FXML-Datei (primary.fxml) und einer eigenen Controller-Klasse (FXMLPrimaryController.java). Eines der Elemente in der FXML ist aTextArea. Einige der Methoden in FXMLPrimaryController.java sollen daran angehängt werdenTextArea.

Diese Anwendung erzeugt jetzt ein zweites Fenster (eine weitere "Stufe") mit einer eigenen FXML (second.fxml) und einer eigenen Controller-Klasse (FXMLsecondController.java).

Wie kann ich innerhalb der zweiten Controller-Klasse auf die TextArea in der primären zugreifen?

Hier ist ein Beispiel des relevanten Codes:

primary.fxml:

<Button text="press me!" onAction="#openSecondWindow" />
<TextArea fx:id="myArea" />

FXMLPrimaryController.java:

public class FXMLPrimaryController implements Initializable {

    @Override
    public void initialize(URL url, ResourceBundle rb) {
    }

    @FXML private TextArea myArea;

    final public void writeToTextArea() {
        myArea.appendText("hi!");
    }

    @FXML
    private void openSecondWindow(ActionEvent event) throws Exception {

        Group root = new Group();
        Stage stage = new Stage();

        AnchorPane frame = FXMLLoader.load(getClass().getResource("second.fxml"));
        root.getChildren().add(frame);
        Scene scene = new Scene(root);

        stage.setScene(scene);
        stage.show();
    }

}

An second.fxml ist nichts Besonderes. Angenommen, es gibt eine Schaltfläche mitonAction="#writeSomething".

In FXMLsecondController.java möchte ich eine Funktion, die auf die oben genannten verweistTextArea.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage