当前位置: 首页 > 知识库问答 >
问题:

FXML控制器中的静态@FXML变量

殷轶
2023-03-14

我从JavaFX8B109升级到b116,我的FXML控制器类在初始化时注入的变量为null。我用样例NetBeans FXML应用程序尝试了它。

@FXML
private static Label label;

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

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

共有1个答案

纪翰
2023-03-14

非常感谢您记录了这个问题。从昨晚开始,我就试着修好它。像您一样,我猜到注入的变量是null,最终可能会形成我的问题来查询web以获得解决方案。我在这里找到了你的入口。

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

 类似资料:
  • 问题内容: 我试图在JavaFX中获得TableView来动态显示内容。 当我运行程序时,出现此错误: 我的控制器名为“ UserInterfaceController.java”,它与FXML文件位于同一软件包下,我也已将该软件包导入了FXML中。为什么找不到控制器? FXML文件: 控制器: 主类: 问题答案: 使用FXML的全限定名来引用您的控制器: 后续问题的答案 对以下问题的回答解释了为

  • 我试图在JavaFX中获得一个TableView来动态显示内容。 当我运行程序时,出现以下错误: 我的控制器名为“UserInterfaceController.java”,它与FXML文件在同一个包下,我也在FXML中导入了包。为什么找不到控制器? FXML文件: 控制器: 主要类:

  • 如何解释文件与其对应的控制器类之间的关系

  • 问题内容: 当我在JavaFX中调用FXMLLoader#load()时会发生什么? 假设FXML控制器扩展了具有构造函数的类。是否可以保证构造函数将被调用?如果没有,将如何创建该对象的新实例?例如,在下面的代码中,是否将调用TextField()构造函数? 我已经尝试过搜索这个,但是除了“从FXML文档中加载对象层次结构”之外,似乎没有关于它的文档。来自http://docs.oracle.co

  • Java FXML文档要求创建两个变量,如下所示: 什么决定控制器变量名?是否总是只有include id后跟“controller”?

  • 我已经试着搜索了这篇文章,但是除了“从FXML文档加载对象层次结构”之外,似乎没有关于它的文档。摘自http://docs.oracle.com/javafx/2/api/javafx/fxml/fxmlloader.html 你的回答将不胜感激。多谢!