javafxscenebuilder无法用fx:include打开fxml文档

vq8itlhq  于 2021-07-09  发布在  Java
关注(0)|答案(0)|浏览(268)

我有一个用scenebuilder构建的javafx应用程序,我刚刚发现了一个漂亮的fx:include标记,它允许您将fxml文件包含到其他文件中。我有一个名为manager.fxml的主fxml文档,这是一个带有标题和tabpane的简单视图。tabpane中的每个选项卡都有自己的fxml文档和控制器—消息、联系人和产品。
下面是导致scenebuilder认为它是一个无效的fxml文件的代码部分,特别是fx:include部分,如果我删除它的话。它甚至可以在java代码中工作,如果我插入这个选项卡并将它的内容设置为加载的fxml,我将尝试在下面包括它。

<TabPane id="theTabs" prefHeight="849.0" prefWidth="1200.0" tabClosingPolicy="UNAVAILABLE">
    <tabs>
      <Tab text="System Messages">
        <content>
           <fx:include source="/fxml/manager_message_tab2.fxml" fx:id="systemMessage" />
        </content>
      </Tab>
      <Tab fx:id="productsTab" onSelectionChanged="#goToProducts" text="Product" >
        <content>
           <fx:include source="/fxml/manager_products_tab.fxml" fx:id="product" />
        </content>
      </Tab>
      <Tab fx:id="contactsTab" onSelectionChanged="#goToContacts" text="Contact">
        <content>
           <fx:include source="/fxml/manager_contacts_tab.fxml" fx:id="contact" />
        </content>
      </Tab>
    </tabs>
</TabPane>

尽管scenebuilder说它无效,但是eclipse可以毫无问题地运行它。我曾尝试使用scenebuilder2.0中的内置工具,使用file->include->fxml,但也失败了,原因是“未能在“tab”下包含fxml\u document.fxml”。manager.fxml的根节点是一个borderpane-所有includes的根节点也是一个borderpane,因此我尝试将borderpane作为borderpane的中心元素。scenebuilder允许我将一个空边框窗格拖到需要的位置,但不允许我使用fx:include。
但这正是我手动构建它的方式,正如您在上面的代码中看到的那样。
我现在的问题是,如果我尝试打开手动编辑的fxml(包含fx:include标记的文件),它会说这是一个无效的文件,我无法编辑它。
有人有类似的问题吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题