簡體   English   中英

JAVAFX - FXML - 從父控制器訪問加載的FXML控件

[英]JAVAFX - FXML - Access Loaded FXML Controls from Parent Controller

這是我想要完成的。

/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 set。 否則您將遇到“已指定控制器值”。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM