我有一个用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标记的文件),它会说这是一个无效的文件,我无法编辑它。
有人有类似的问题吗?
暂无答案!
目前还没有任何答案,快来回答吧!