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

将常规JavaFX节点添加到FXML中

韦晟睿
2023-03-14

因此,我有一个从BorderPane扩展而来的常规组件,我想将其添加到一些FXML代码中。我得到java.lang.IllegalArgumentException:无法将SettingsTab强制到类javafx.scene.Node。SettingsTabextendsBorderPane

public class SettingsTab extends BorderPane { ...

我试图把它包括成这样:

<Tab fx:id="settingsTab" text="%ui.gui.settings.title" content="SettingsTab"/>

FXML代码和类位于同一个包/目录中。

我可以像这样包括FXML文件,但我想包括一个类文件:

 <Tab fx:id="scheduleTab" text="%ui.gui.schedule.title">
      <fx:include source="ScheduleTab.fxml"/>
 </Tab>

共有1个答案

颛孙航
2023-03-14

选项卡需要这样的内容标记,而不是作为属性值。

<TabPane>
  <Tab fx:id="settingsTab" text="%ui.gui.settings.title">
    <content>
      <BorderPane></BorderPane>
    </content>
  </Tab>
</TabPane>

在你的情况下:

<TabPane>
  <Tab fx:id="settingsTab" text="%ui.gui.settings.title">
    <content>
      <SettingsTab></SettingsTab>
    </content>
  </Tab>
</TabPane>

您需要在fxml中导入自定义组件

<?import my.custom.package.SettingsTab ?>
 类似资料:
  • 我在相应的控制器中有一个用FXML创建的窗口,我有一个按钮,当单击特定的按钮时,它会加载一个小框。这个盒子也是使用FXML设计的。 当我加载盒子并想把它添加到窗口中时,我得到这个错误: 这是我的代码: 主窗口FXML: 我要动态创建的框的FXML:

  • 我正在尝试构建一个在JavaFX中实现群聊的聊天应用程序。我想在边框窗格内创建一个滚动窗格,该窗格将包含用户所属的所有组。当用户加入时,需要将组图标(ImageViews)动态添加(在场景生成器中无法完成)到滚动窗格(在HBox内)。 目前,我正在使用一个SceneController类,该类负责所有阶段和场景更改。 我已经创建了一个FXML文件(使用场景生成器),其中包含一个边框窗格和一个滚动窗

  • 我已经用FXML创建了一个布局,它由一个带有sideMenu的BorderPane和一个用于其他内容的innerBorderPane组成... 但是,由于我刚刚开始使用JavaFX中的FXML,所以我只需要知道如何做下一件事... custom.FXML(这是主要的FXML布局) sideMenu.FXML(这是sideMenu FXML布局) java(这是sideMenu JavaFX控制器)

  • 由于某种原因,我无法将FXML文件中定义的节点加载到实例变量中。我制作了这两个测试文件: 和都被打印为而它们本应被注入FXML文件中定义的节点,有人知道这里出了什么问题吗?当我在Scene Builder中编辑FXML文件时,controller类和字段都被找到并识别,所以应该不会有任何问题。

  • 我试图在JavaFX中创建一个工具栏来使用FXML添加按钮,如下所示: 下面是相应的java类: 当我运行这个项目时,我得到了这个异常: 提前谢谢。