Como acesso um elemento da interface do usuário de outra classe de controlador no JavaFX?
Eu tenho um aplicativo JavaFX / Java 8 criado com o NetBeans 8 (semSceneBuilder
)
Meu aplicativo possui uma janela principal que possui seu próprio arquivo FXML (primary.fxml) e sua própria classe de controlador (FXMLPrimaryController.java). Um dos itens no FXML é umTextArea
. Alguns dos métodos em FXMLPrimaryController.java são sobre anexar a issoTextArea
.
Esse aplicativo agora gera uma segunda janela (outro "estágio") com seu próprio FXML (second.fxml) e sua própria classe de controlador (FXMLsecondController.java).
Na segunda classe do controlador, como posso acessar a TextArea no primário?
Aqui está uma amostra do código relevante:
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();
}
}
Não há nada chique no second.fxml. Suponha que exista um botão comonAction="#writeSomething"
.
No FXMLsecondController.java, eu gostaria de uma função que referencie o acimaTextArea
.