当前位置: 首页 > 面试题库 >

Java FX中的嵌套控制器问题

徐帅
2023-03-14
问题内容

我试图SelectedIssueController在主布局( main.fxml )中包含controller()。但是我收到以下错误:

Can not set lt.mypackage.controllers.SelectedIssueController field lt.mypackage.controllers.MainController.selectedIssueController to javafx.scene.layout.VBox

main.fxml中的行:

  <fx:include fx:id="selectedIssueController" source="controllers/selectedissue.fxml" />

我选择的issue.fxml:

<VBox xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1" fx:controller="lt.mypackage.controllers.SelectedIssueController" fillWidth="false" SplitPane.resizableWithParent="false">
    <children>
     .....
     .....
    </children>
</VBox>

输入MainController

@FXML
private SelectedIssueController selectedIssueController;

据我了解,它VBox现在可以注入对象,但是我需要SelectedIssueController。我当前的实现方式有什么问题?


问题答案:

FXMLLoader追加Controller到元素中fx:id指定的位置fx:include以获取将控制器注入到的字段的名称。因此,它应该是:

@FXML
private SelectedIssueController selectedIssueControllerController;

要么

<fx:include fx:id="selectedIssue" source="controllers/selectedissue.fxml" />

注入到不带Controller后缀的字段的值是为所创建的值fx:include,即为Object所包含的fxml的根所创建的值。



 类似资料:
  • 这让我的头撞到了墙上!!!!希望有人能给我指出正确的方向。我确信我在做一些完全愚蠢的事情。我找了又找,但似乎找不出为什么这不管用!!(在IntelliJ IDE 15.x上使用JDK8.x和Scenebuilder)。我试图在GUI上显示数据,但希望access通过编程将这些数据从其他类/方法发送给它。。。。下面是一个简单的概念,我在着手更大的项目之前,正试图让它发挥作用: 我的简单GUI在FXM

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

  • 使用控制器工厂的问题: 到目前为止,我最好的方法是使用Stephen Chin方法连接顶层控制器。 对于有多个bean实例的情况,父控制器将通过@autowire/@qualifer获取对特定bean的引用,然后在相应的控制器上设置。 下一级控制器也可以通过在顶层控制器上公开它们并调用autowire()来连接 有没有使用控制器工厂机制,这样我就可以在spring上下文中定义控制器,以便更容易地将

  • 我有两个控制器和。我正在读一本书的内容。来自的txt文件,我希望将该文本放置在的文本区域中。代码在中运行并读取良好,但当打开中的窗口时,从中读取的内容。文本内容在文本区域中不可见。我的显示String mine包含内容,但它不显示在的文本区域中。请帮助任何人。非常感谢。 FXMLDocumentController代码 在中,有一个我删除了和,这样代码就可以工作了。

  • 问题内容: 我正在尝试使用SceneBuilder用JavaFX构建一个简单的GUI,在这里我使用MenuItem(在中)选择一个根文件夹。然后,该文件夹的内容会在TextArea中列出,然后再次包装在TabPane中(,是嵌套的FXML,其中包括)。 我以这篇文章为起点来习惯MVC。不幸的是,由于我没有明确调用它,所以我不知道如何使嵌套的FXML侦听或绑定到外部FXML。现在,我只是停留在标签中