Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javafx.fxml.LoadException:元素未定义默认属性_Exception_Javafx_Fxml_Gluon - Fatal编程技术网

javafx.fxml.LoadException:元素未定义默认属性

javafx.fxml.LoadException:元素未定义默认属性,exception,javafx,fxml,gluon,Exception,Javafx,Fxml,Gluon,使用FXML加载胶子布局。 我希望以一种稍微不同的方式加载布局,然后文档会这样做: 区别在于我想用FXMLLoader加载它 我的代码与此示例类似: 扩展MobileApplication的类 Class LayerLoader extensed Layer-我想用这个类来加载FXML public LayerLoader(){ FXMLLoader loader = new FXMLLoader(getClass().getResource(fxmlPath)); Par

使用FXML加载胶子布局。

我希望以一种稍微不同的方式加载布局,然后文档会这样做:

区别在于我想用FXMLLoader加载它

我的代码与此示例类似:

扩展MobileApplication的类

Class LayerLoader extensed Layer-我想用这个类来加载FXML

public LayerLoader(){

    FXMLLoader loader = new FXMLLoader(getClass().getResource(fxmlPath));

    Parent root = null;
    try {
        root = loader.load();    //exception in this line
    } catch (IOException e) {
        e.printStackTrace();
    }

}
注意:“视图”以类似的方式加载。很好

FXML文件

当我尝试在LayerLoader中加载fxml时会发生异常。它指的是我的FXML

它说StackPane没有定义默认属性。(javafx.fxml.LoadException:元素未定义默认属性。)


谢谢,

请..不确定,如果
SidePopupView
@NamedArg
注释它的构造函数参数,但是类似乎没有使用
@DefaultProperty
注释,要求您将
元素包装到
元素中,或者使其无法通过fxml创建实例。错误可能是指
SlidePopupView
。那是你的课吗?你能展示它吗?@Slaw它不是我的类,它是胶子类。@fabian是对的,它需要一个
@NamedArg
参数。不幸的是,我不知道什么是
NamedArgs
,以及如何使用它们。但我是按照他说的去做的,现在起作用了。
public LayerLoader(){

    FXMLLoader loader = new FXMLLoader(getClass().getResource(fxmlPath));

    Parent root = null;
    try {
        root = loader.load();    //exception in this line
    } catch (IOException e) {
        e.printStackTrace();
    }

}
<imports...>

<SidePopupView fx:id="sidePopup" side="LEFT" styleClass="mainFxmlClass" xmlns="http://javafx.com/javafx/8.0.40"
xmlns:fx="http://javafx.com/fxml/1" fx:controller="x.y.controller.layoutController">
    <StackPane fx:id="stackPane" prefHeight="150.0" prefWidth="200.0">
      <children>
        <Button />
      </children>
    </StackPane>  <!-- Exception in this line -->
</SidePopupView>
@Override
protected void updateAppBar(AppBar appBar) {
    appBar.setNavIcon(MaterialDesignIcon.MENU.button(
            e -> MobileApplication.getInstance().showLayer("LAYER"))
    );
}