如何在 JavaFX 中从另一个控制器类访问 UI 元素?
我有一个用NetBeans 8编写的JavaFX / Java 8应用程序(没有)。SceneBuilder
我的应用程序有一个主窗口,它有自己的FXML文件(primary.fxml)和自己的控制器类(FXMLPrimaryController.java)。FXML 中的一个项目是 .FXMLPrimaryController.java中的一些方法是关于附加到该方法的。TextArea
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