0

コントローラー クラスだけでなく、別のクラスでも @FXML 変数を呼び出す方法があることに興味があります。実際、私はSVGPathノードを扱っており、さまざまな種類のグラフを実装しようとしています。ただし、コード全体をコントローラークラスだけに書きたくありません。明確な回答をいただければ助かります。とにかくありがとう:)

編集:私の問題に関する簡単な例を紹介しましょう。

コントローラ クラス コード セクション。

public class RiskControllerClass implements Initializable {

   @FXML private SVGPath NA_1; // Alaska
   @FXML private SVGPath NA_2; // NorthWest_Ter
   .
   .
}

Territoryグラフの頂点を参照するクラス

public class Territory {

    public Territory(SVGPath nodeSVG, int territoryID, int playerID){

        this.playerID = playerID;
        this.territoryID = territoryID;
        this.nodeSVG = nodeSVG;
        this.label = nodeSVG.getId();
        this.adjacencyList = new LinkedList<>();
        this.edgeSet = new LinkedList<>();
    }
.
.
}

だから私は自分のグラフをコントローラークラスとは別のクラスに実装したいGameBoard

public class GameBoard  {

    // Want to call @FXML instance variables here

}
4

1 に答える 1

3

コントローラーにアクセスしてそこからメソッドを呼び出す以外に方法はありません。@FXMLアノテーションがプライベート変数をグローバルに利用可能にする魔法のような方法はありません。は、FXML のインスタンス化プロセスでリフレクションを介してアクセスできるように@FXML、特定のフィールドをマークするためにのみ使用されます。それ以外には何もありません。FXMLLoader

コントローラーへのアクセス方法については、次の質問を参照してください。

FXML コントローラ クラスへのアクセス

JavaFX:初期化中にコントローラーからステージを取得する方法は?

于 2013-06-26T13:06:07.720 に答える