将常规JavaFX节点添加到FXML中

时间:2015-07-06 04:12:09

标签: java javafx fxml

所以我有一个从BorderPane扩展的常规组件,我想将它添加到一些FXML代码中。我正在java.lang.IllegalArgumentException: Unable to coerce SettingsTab to class javafx.scene.Node. SettingsTab延伸BorderPane

public class SettingsTab extends BorderPane { ...

我想把它包括在内:

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

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

我对FXML比较陌生,对语法不是很熟悉,所以我不知道怎么做。

我可以包含这样的FXML文件,但我想要包含一个类文件:

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

1 个答案:

答案 0 :(得分:2)

标签需要这样的内容标签,而不是属性值。

<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 ?>