将常规 JavaFX 节点添加到 FXML
Add regular JavaFX Node into FXML
所以我有一个从 BorderPane
扩展而来的常规组件,我想将它添加到一些 FXML 代码中。我得到 java.lang.IllegalArgumentException: Unable to coerce SettingsTab to class javafx.scene.Node.
SettingsTab
extends BorderPane
:
public class SettingsTab extends BorderPane { ...
我试图像这样包含它:
<Tab fx:id="settingsTab" text="%ui.gui.settings.title" content="SettingsTab"/>
FXML代码和class在同一个package/directory.
我对 FXML 比较陌生,对语法不是很熟悉,所以我不知道该怎么做。
我可以像这样包含 FXML 文件,但我想包含一个 class 文件:
<Tab fx:id="scheduleTab" text="%ui.gui.schedule.title">
<fx:include source="ScheduleTab.fxml"/>
</Tab>
选项卡需要这样的内容标签,而不是作为属性值。
<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 ?>
所以我有一个从 BorderPane
扩展而来的常规组件,我想将它添加到一些 FXML 代码中。我得到 java.lang.IllegalArgumentException: Unable to coerce SettingsTab to class javafx.scene.Node.
SettingsTab
extends BorderPane
:
public class SettingsTab extends BorderPane { ...
我试图像这样包含它:
<Tab fx:id="settingsTab" text="%ui.gui.settings.title" content="SettingsTab"/>
FXML代码和class在同一个package/directory.
我对 FXML 比较陌生,对语法不是很熟悉,所以我不知道该怎么做。
我可以像这样包含 FXML 文件,但我想包含一个 class 文件:
<Tab fx:id="scheduleTab" text="%ui.gui.schedule.title">
<fx:include source="ScheduleTab.fxml"/>
</Tab>
选项卡需要这样的内容标签,而不是作为属性值。
<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 ?>