Загрузка макета 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: элемент не определяет свойство по умолчанию.)
Спасибо,