gpt4 book ai didi

JAVAFX - FXML - 从父 Controller 访问加载的 FXML 控件

转载 作者:行者123 更新时间:2023-12-02 06:52:45 26 4
gpt4 key购买 nike

这就是我想要实现的目标。

/Package A/
/Package A/ApplicationController.java
/Package A/Application.fxml

在我的 Application.fxml 文件中,我有一个按钮,单击该按钮时,它会加载以下“MyGrid.fxml”文件。

/Package B/
/Package B/MyGrid.fxml (has a label #mygridlabelid

我使用的代码是:

ContentPane.getChildren().add((Node)FXMLLoader.load(getClass().getResource("/Package B/MyGrid.fxml")));

但问题是..即使我从ApplicationController加载MyGrid.fxml文件,我也无法从ApplicationController文件访问#mygridlabelid。我在 ApplicationController.java 文件中定义了 @FXML 标签 mygridlabelid,但它没有被实例化:(

我怎样才能做到这一点?有什么技巧或窍门吗?

最佳答案

我设法通过执行以下操作解决了该问题...并确保 .fxml 文件没有设置 fx:controller。否则您将遇到“ Controller 值已指定。”

    FXMLLoader loader = new FXMLLoader(getClass().getResource("/your.fxml"));
loader.setController(this);
try {
ContentPane.getChildren().add((Node)loader.load());
} catch (IOException e){
System.out.println(e.getMessage());
}

关于JAVAFX - FXML - 从父 Controller 访问加载的 FXML 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17801365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com