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

在Javafx中删除层时出现空指针异常

东方海
2023-03-14

我有三层根布局、主页和内容(rootlayout.fxml、home.fxml和content.fxml)

        FXMLLoader loader = new FXMLLoader();
        loader.setLocation(GenerateReport.class
                .getResource("/skin/rootLayout.fxml"));
        rootLayout = (AnchorPane) loader.load();
        Scene scene = new Scene(rootLayout);


        FXMLLoader loader = new FXMLLoader();
        loader.setLocation(GenerateReport.class
                .getResource("/skin/home.fxml"));
        AnchorPane homeLayout = (AnchorPane) loader.load();
        rootLayout.getChildren().addAll(homeLayout);
        .
        .
        .
        rootLayout.getChildren().addAll(contentLayout);

像这样,我正在添加内容布局。在rootlayout.fxml中,我有一个home按钮。我的要求是,如果一个用户点击主页按钮,那么我希望内容布局被删除,主页布局是可见的。

在我创建的Controller(在我指向同一个Controller的所有fxml文件中)类中

@FXML
private Button home;

@FXML
private AnchorPane myContent;

@FXML
protected void homeBtn(ActionEvent event) throws Exception {
    System.out.println("click! homeBtn");
    myContent.getChildren().clear();
}

我面临的问题是我得到了NullPointerException。即MyContent.getChildren()返回NULL。谁能帮我解决这个问题。

共有1个答案

鲍俊杰
2023-03-14

您将得到一个空指针异常,因为Javafx没有将mycontent与存储在fxml中的AnchorPane相关联,也没有将引用附加到该对象。

通过使用fx:id为fxml文件中的节点提供其名称标识符。例如,请注意,您的@fxml私有按钮home在fxml中标记为

 类似资料:
  • 以下是在sun.reflect.nativeMethodAccessorImpl.Invoke0(本机方法)在sun.reflect.nativeMethodAccessorImpl.Invoke(未知源)在sun.reflect.NativeMethodAccessorImpl.Invoke(未知源)在java.lang.Reflect.Method.Invoke(未知源)在com.codena

  • 我一直在构建一个影院预订应用程序,正在尝试创建一个显示电影和放映时间的场景。当我使用锚点窗格和vbox来显示所有信息时,它起作用,但当我尝试插入一个额外的滚动窗格(在scenebuilder中)时,FXML加载程序返回一个空指针异常,我无法找出原因... 这是我的FXML代码 下面是controller类 编辑:fx:id'vbox'不会从getRoot()方法访问,即使它已被注入到FXML加载器

  • > 单击 受保护得空onPrepareDialog(int id,Dialog Dialog) 受保护的对话框onCreateDialog(int id) 如果我对timepickerdialog代码做了什么错误,请告诉我。

  • 我正在编写的一个程序出现了以下问题,我在互联网上搜索了一下,但我真的找不到任何东西来帮助我理解以下问题 因此,在另一个类中,我编写了一个方法,只要单击搜索按钮,该方法就执行如下所示: 然后SearchController类看起来如下所示(我在这里简化了它): 有人能告诉我为什么可以在initialize方法上写文本吗(该方法在行...那么,如果我尝试在该行之后的标签上写,为什么它不起作用?) 提前

  • 问题内容: 此代码导致空指针异常。我不知道为什么: 我已经在调试器中检查了它,所有局部变量都不为空。怎么会这样呢?BiMap来自Google Collections。 问题答案: 空指针异常是将的结果拆箱的结果。如果不包含键,则返回“ of type” 。假设分配是给引用的,Java将值拆箱到中,导致空指针异常。 您应该检查或用作局部变量类型,以免取消装箱并采取相应措施。适当的机制取决于您的上下文

  • 我有4个图像作为按钮,当选择正确的按钮时,会出现一个工作正常的箭头按钮。 我的问题是,我试图更改每个按钮的后台资源以在单击此箭头时进行更改,但我在该行得到一个空指针异常: 我已经在java onCreate中声明了nextArrow按钮- 类别: 日志: XML: 我错过了什么明显的东西吗?