javafx.f xml .LoadException: элемент не определяет свойство по умолчанию - PullRequest
0 голосов
/ 16 января 2020

Загрузка макета Gluon с помощью F XML.

Я хотел бы загрузить макет немного по-другому, чем эта документация: https://docs.gluonhq.com/charm/5.0.1/#_layers

Разница в том, что я хотел бы загрузить его с FXMLLoader.

Мой код похож на этот пример:

Класс, расширяющий MobileApplication

@Override
public void init() {
    addViewFactory("VIEW", HomeViewLoader::new);
    addLayerFactory("LAYER", LayerLoader::new);
}

Класс LayerLoader расширяет слой - я хотел бы использовать этот класс для загрузки F XML

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();
    }

}

Примечание: «Вид» загружается аналогичным образом. И это нормально.

Файл F XML

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

Я запускаю свой слой, чтобы отобразиться вот так в HomeViewLoader class:

@Override
protected void updateAppBar(AppBar appBar) {
    appBar.setNavIcon(MaterialDesignIcon.MENU.button(
            e -> MobileApplication.getInstance().showLayer("LAYER"))
    );
}

Исключение происходит, когда я пытаюсь загрузить f xml в LayerLoader. Это относится к моему F XML.

Он говорит, что StackPane не определяет свойство по умолчанию. (javafx.f xml .LoadException: элемент не определяет свойство по умолчанию.)

Спасибо,

...