Как получить доступ к элементу пользовательского интерфейса из другого класса контроллера в JavaFX?

У меня есть приложение JavaFX / Java 8, написанное с использованием NetBeans 8 (нетSceneBuilder).

Мое приложение имеет главное окно, которое имеет свой собственный файл FXML (primary.fxml) и свой собственный класс контроллера (FXMLPrimaryController.java). Одним из элементов в FXML являетсяTextArea, Некоторые из методов в FXMLPrimaryController.java предназначены для добавления к этомуTextArea.

Это приложение теперь порождает второе окно (еще один «этап») со своим собственным FXML (second.fxml) и собственным классом контроллера (FXMLsecondController.java).

Во втором классе контроллера, как я могу получить доступ к TextArea в основной?

Вот пример соответствующего кода:

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();
    }

}

В second.fxml нет ничего особенного. Предположим, есть кнопка сonAction="#writeSomething".

В FXMLsecondController.java я хотел бы функцию, которая ссылается на вышеTextArea.

Ответы на вопрос(2)

Ваш ответ на вопрос