Java 如何添加<;fx:root>;组件作为FXML中的子组件?
我有一个自定义组件,它扩展了AnchorPane,如下所示:Java 如何添加<;fx:root>;组件作为FXML中的子组件?,java,javafx,parent-child,fxml,Java,Javafx,Parent Child,Fxml,我有一个自定义组件,它扩展了AnchorPane,如下所示: public class CustomAnchorPane extends AnchorPane { } 我想在边框窗格中加载此内容。如果我想加载一个常规的锚泊烷,我会这样做:(为了简洁,我删除了一些行) 我知道构造用于可重用/自定义组件。但是,我不知道如何将其设置为边框窗格的子项,因为我认为它必须是FXML文件的根。因此,下面抛出一个错误: 正确的方法是什么 提前感谢。仅作为fxml的根才有意义,因为这是使用从fxml创建
public class CustomAnchorPane extends AnchorPane { }
我想在边框窗格
中加载此内容。如果我想加载一个常规的锚泊烷,我会这样做:(为了简洁,我删除了一些行)
我知道
构造用于可重用/自定义组件。但是,我不知道如何将其设置为边框窗格
的子项,因为我认为它必须是FXML文件的根。因此,下面抛出一个错误:
正确的方法是什么
提前感谢。
仅作为fxml的根才有意义,因为这是使用从fxml创建的对象的父对象的唯一位置,而不是在fxml本身中定义的
它只会使fxmloader
使用使用setRoot
传递的对象,而不是为此标记本身创建一个元素
假设您已经正确实现了自定义节点
,您可以像使用任何其他元素一样使用它:
请注意,这需要在文件开头的处理指令中进行适当的导入,并且类需要提供一个不带参数的public
构造函数
如果您没有自己创建自定义类,但是有一个fxml文件要在特定的播放中使用,那么您也可以使用fx:include
:
仅作为fxml的根才有意义,因为这是使用从fxml创建的对象的父对象的唯一位置,但未在fxml本身中定义
它只会使fxmloader
使用使用setRoot
传递的对象,而不是为此标记本身创建一个元素
假设您已经正确实现了自定义节点
,您可以像使用任何其他元素一样使用它:
请注意,这需要在文件开头的处理指令中进行适当的导入,并且类需要提供一个不带参数的public
构造函数
如果您没有自己创建自定义类,但是有一个fxml文件要在特定的播放中使用,那么您也可以使用fx:include
:
Ahh,我不知道您可以直接导入自定义组件并使用它!这非常简单和强大,谢谢。啊,我不知道你可以直接导入自定义组件并使用它!这很简单,也很强大,谢谢。