Java @FXML注入中出现空指针异常

Java @FXML注入中出现空指针异常,java,intellij-idea,javafx-2,fxml,Java,Intellij Idea,Javafx 2,Fxml,我试图使用JavaFX和FXML文件,但当我在控制器中注入菜单栏时出现了一些问题,编译器给了我一个NullPointerException。我尝试了按钮和文本字段,效果很好 这是mycode: FXML文件:` <?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.control.*?> <?import java.lang.*?> <?import javafx.scene.layou

我试图使用JavaFX和FXML文件,但当我在控制器中注入菜单栏时出现了一些问题,编译器给了我一个NullPointerException。我尝试了按钮和文本字段,效果很好

这是mycode: FXML文件:`

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>

<VBox fx:controller="it.fedgiac.projectmanager.controller.ControllerMain" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
  <children>
      <MenuBar fx:id="menubar_mainmenu" />
   </children>
</VBox>`
调试后,我看到变量menubar\u main菜单为空

这就是错误:


提前感谢您的帮助。

让您的FXML控制器实现可初始化的
。然后将提示您实现方法
初始化(URL、ResourceBundle、ResourceBundle)
。在此方法中,您可以确保
菜单栏\主菜单
已初始化。您可以将现有代码移动到该方法中

public void initialize(URL url, ResourceBundle resourceBundle){
    menubar_mainmenu.getMenus().add(new Menu("File"));
}

使您的FXML控制器实现可初始化的
。然后将提示您实现方法
初始化(URL、ResourceBundle、ResourceBundle)
。在此方法中,您可以确保
菜单栏\主菜单
已初始化。您可以将现有代码移动到该方法中

public void initialize(URL url, ResourceBundle resourceBundle){
    menubar_mainmenu.getMenus().add(new Menu("File"));
}

您是否尝试过在菜单的主菜单中添加菜单?如果错误仍然存在,那么这不是问题。您是否尝试过在菜单主菜单中添加菜单的位置进行注释?如果错误仍然存在,那么这不是问题。我还不明白为什么它没有初始化,但它工作,非常感谢。我还不明白为什么它没有初始化,但它工作,非常感谢。