【问题标题】:Add regular JavaFX Node into FXML将常规 JavaFX 节点添加到 FXML
【发布时间】:2015-07-06 04:12:09
【问题描述】:

所以我有一个从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>

【问题讨论】:

    标签: java javafx fxml


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-03
      • 2018-01-05
      相关资源
      最近更新 更多