0

これが私が達成しようとしていることです。

/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 を定義しましたが、インスタンス化されません:(

どうやってやるの?その周りのトリックやハックはありますか?

4

1 に答える 1

2

私は次のことを行うことで問題を解決することができました...そして.fxmlファイルにfx: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());
    }
于 2013-07-23T13:41:00.630 に答える