【问题标题】:Static @FXML variables in FXML ControllerFXML 控制器中的静态 @FXML 变量
【发布时间】:2014-02-25 11:13:21
【问题描述】:

我从 JavaFX 8 b109 升级到 b116,我的 FXML 控制器类在初始化时注入的变量为 null。我使用示例 NetBeans FXML 应用程序进行了尝试。

@FXML
private static Label label;

@Override
public void initialize(URL url, ResourceBundle rb) {
    label.setText("static test");
} 

问题在于static 关键字。我删除它,它的工作原理。它在 b109 中使用静态变量运行良好。在最初编写我的应用程序时,我认为静态是有意义的。它们是在应用程序加载时创建的,并且场景只有一个副本。

有没有办法在不重写使用静态访问的一千行代码的情况下解决这个问题?

【问题讨论】:

标签: fxml javafx-8


【解决方案1】:

非常感谢您记录此问题。从昨晚开始,我试图修复它。像你一样,我猜到注入的变量是空的,最终可以塑造我的问题,在网上查询解决方案。我在这里找到了你的条目。

对于这个问题,我建议一个快速的肮脏解决方案,我从原始变量名的声明中删除了 static 关键字,同时我声明了一个静态等效项,在原始名称的末尾插入一个 _ 字符。在 initialize() 中,我将注入的对象复制到静态对应对象中,而无需重构我所有的静态内部类和方法。

【讨论】:

    【解决方案2】:

    不管怎样,我重构了一切,并没有我想象的那么难。在寻找解决方案时,我花了大约一半的时间进行重构。

    我会留下这个问题,以防其他可怜的灵魂有同样的问题。

    【讨论】:

      猜你喜欢
      • 2014-12-19
      • 2015-05-29
      • 1970-01-01
      • 2013-12-25
      • 2013-07-22
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      相关资源
      最近更新 更多