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

所以我想实现我的图形另一个类而不是Controller类GameBoard

public class GameBoard  {

    // Want to call @FXML instance variables here

}
4

1 回答 1

3

除了访问您的控制器并从中调用方法外,别无他法。@FXML注释没有神奇的方式使私有变量全局可用。@FXML仅用于标记某些字段,FXMLLoader因此他可以在 FXML 的实例化过程中通过反射访问它们 - 仅此而已。

有关如何访问控制器,请参阅此问题:

访问 FXML 控制器类

JavaFX:如何在初始化期间从控制器获取阶段?

于 2013-06-26T13:06:07.720 回答