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

Javafx FXML加载器get控制器返回null

柴砚文
2023-03-14

在我的程序中,我有一个选项卡窗格,每个选项卡都有自己的FXML文件和控制器。我已经为选项卡2(Schedular)加载了FXML文件。我试图从父控制器(FXML文档)调用子控制器(调度程序)中的函数。当我使用FXML Loader加载控制器时,它返回null。我该如何解决这个问题。

这是我的主要代码:

主要FXML文档:

<AnchorPane xmlns:fx="http://javafx.com/fxml/1" fx:id="AnchorPane" prefHeight="600" prefWidth="800" xmlns="http://javafx.com/javafx/8.0.65"   fx:controller="showprojavafxml.FXMLDocumentController">
    <children>

共有1个答案

高嘉熙
2023-03-14

fxml加载器仅在加载fxml文件时实例化控制器(必须如此,因为控制器类是在fxml文件中指定的…)。由于您从未在加载程序上调用load(),因此从未创建控制器。

看起来您通过两种不同的机制两次引用FXML文件:一次在FXMLDocumentController中。initialize(),在这里创建一个fxml加载器,其位置设置为fxml文件,并且一次通过

要为包含的fxml引用控制器,请使用“嵌套控制器”技术。

首先,将fx: id添加到您的fx: include

<Tab fx:id="tab2" text="Scheduler"   >
    <fx:include fx:id="scheduler" source="Scheduler.fxml" />
</Tab>

现在,您可以将控制器注入一个名为fx:id的字段,并附加文本“controller”:

public class FXMLDocumentController {

    @FXML
    private SchedulerController schedulerController ;

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        schedulerController.refreshList();
    }

}

 类似资料:
  • 问题内容: 我在Angular中有一个服务,该服务使用我的API来获取用户信息并将其提供给控制器。设置如下: 在我的控制器中,我将其包含为: 这不会返回任何数据,而如果我将相同的服务功能放在控制器本身中,它将返回正确的值。我在这里想念什么?以前从未在Angular中使用过DI / Services,因此在某个地方可能是一个简单的错误。 我需要确保该服务在控制器加载 之前 返回数据。如何做到这一点

  • 我收到以下错误,我不确定为什么,因为我直接从模板中运行代码。有人在堆栈跟踪中看到了我没有看到的东西吗?它贴在下面。 “/Cfia中的服务器错误。网状物MVC模板。示例的应用。 远程服务器返回错误:(404)未找到。 描述:在执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源。 异常详细信息:System. Net. WebException:远程服

  • 你好,我是拉威尔的新手,也许这对你们来说太傻了。在laravel 8中,路由web。php我创建了一条如下的路线: 我想问的是,我们也可以从回调视图返回控制器吗?所以在路由 /editprofile中,第二个参数不是'App\Http\Controller\SiteController@edit_profile',而是一个回调函数,如路由'/home'。 但是它返回错误哈哈。假设我不想用__con

  • 问题内容: 我有一个现有页面,需要在其中添加一个可以动态加载的控制器的角度应用程序。 这是一个片段,它根据API和我发现的一些相关问题实现了关于如何完成操作的最佳猜测: JSFiddle。请注意,这是对实际事件链的简化,在以上各行之间有各种异步调用和用户输入。 当我尝试运行上述代码时,由$ compile返回的链接器将抛出:。如果我正确地理解了引导程序,那么它返回的注射器应该知道该模块,对吗? 相

  • 目标是打印标签的当前文本。标签在整个程序中不断变化,使用当前的方法,我只能检索标签的初始化值。 我用来检索控制器实例的内容:

  • 如果可以从Spring返回,我很好奇 这样做可以吗?我试过了,Spring返回的不是流的值。 我应该继续返回