scenebuilder 图层类未找到
scenebuilder layer classnotfound
我有问题。我使用了 SceneBuilder 和 JavaFX。当我在 SceneBuilder 中使用图层时,我试图在 java 中加载它。我收到以下错误消息:
javafx.fxml.LoadException:
/C:/Projects/des_project2/target/classes/view/user/UserMainView.fxml
at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
at javafx.fxml.FXMLLoader.importClass(FXMLLoader.java:2848)
at javafx.fxml.FXMLLoader.processImport(FXMLLoader.java:2692)
at javafx.fxml.FXMLLoader.processProcessingInstruction(FXMLLoader.java:2661)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2517)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2409)
at controller.UserController.<init>(UserController.java:26)
at controller.MainController.<init>(MainController.java:23)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)
at sun.reflect.misc.ReflectUtil.newInstance(ReflectUtil.java:51)
at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:927)
at javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FXMLLoader.java:971)
at javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:220)
at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:744)
at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2707)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097)
at window.MainApp.start(MainApp.java:18)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication12(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait5(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null3(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater4(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null8(WinApplication.java:191)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: com.gluonhq.charm.glisten.layout.Layer
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at javafx.fxml.FXMLLoader.loadTypeForPackage(FXMLLoader.java:2916)
at javafx.fxml.FXMLLoader.loadType(FXMLLoader.java:2905)
at javafx.fxml.FXMLLoader.importClass(FXMLLoader.java:2846)
... 36 more
它说原因是:Caused by: java.lang.ClassNotFoundException: com.gluonhq.charm.glisten.layout.Layer
并且在我的 fxml 文件中说它无法解析图层 com.gluonhq.charm.glisten.layout.Layer
。
你能帮我解决这个问题吗?
提前致谢。
您可以在任何 JavaFX 项目中使用场景生成器的容器或控制面板中包含的所有组件(以及其他面板中的组件,如菜单、形状、3D 等),因为它们是构建的- 在 JavaFX 组件中。
但是 Gluon Mobile
面板中包含的那些不是常规的 JavaFX 组件。
这些组件包含在 Gluon Mobile library 中,您也可以在您的项目中使用它,前提是您包含适当的依赖项。
最好的方法是在您最喜欢的 IDE(NetBeans、IntelliJ 或 Eclipse)上使用 Gluon IDE plugin。安装插件并创建一个新项目,它将包括 Gluon Mobile 依赖项:
dependencies {
compile 'com.gluonhq:charm:4.3.0'
}
您可以 select Gluon Mobile - 带有 FXML 或 Glisten-Afterburner 模板的多视图。两者都使用 FXML,您可以使用 Scene Builder 8.3.0 为您的项目设计视图。
请注意,您将能够 运行 使用相同的代码库在桌面和移动设备(Android 和 iOS)上运行此项目。
请注意,该库不是免费的,但您可以在没有许可证的情况下充分探索它。
我有问题。我使用了 SceneBuilder 和 JavaFX。当我在 SceneBuilder 中使用图层时,我试图在 java 中加载它。我收到以下错误消息:
javafx.fxml.LoadException:
/C:/Projects/des_project2/target/classes/view/user/UserMainView.fxml
at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
at javafx.fxml.FXMLLoader.importClass(FXMLLoader.java:2848)
at javafx.fxml.FXMLLoader.processImport(FXMLLoader.java:2692)
at javafx.fxml.FXMLLoader.processProcessingInstruction(FXMLLoader.java:2661)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2517)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2409)
at controller.UserController.<init>(UserController.java:26)
at controller.MainController.<init>(MainController.java:23)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)
at sun.reflect.misc.ReflectUtil.newInstance(ReflectUtil.java:51)
at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:927)
at javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FXMLLoader.java:971)
at javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:220)
at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:744)
at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2707)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097)
at window.MainApp.start(MainApp.java:18)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication12(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait5(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null3(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater4(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null8(WinApplication.java:191)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: com.gluonhq.charm.glisten.layout.Layer
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at javafx.fxml.FXMLLoader.loadTypeForPackage(FXMLLoader.java:2916)
at javafx.fxml.FXMLLoader.loadType(FXMLLoader.java:2905)
at javafx.fxml.FXMLLoader.importClass(FXMLLoader.java:2846)
... 36 more
它说原因是:Caused by: java.lang.ClassNotFoundException: com.gluonhq.charm.glisten.layout.Layer
并且在我的 fxml 文件中说它无法解析图层 com.gluonhq.charm.glisten.layout.Layer
。
你能帮我解决这个问题吗? 提前致谢。
您可以在任何 JavaFX 项目中使用场景生成器的容器或控制面板中包含的所有组件(以及其他面板中的组件,如菜单、形状、3D 等),因为它们是构建的- 在 JavaFX 组件中。
但是 Gluon Mobile
面板中包含的那些不是常规的 JavaFX 组件。
这些组件包含在 Gluon Mobile library 中,您也可以在您的项目中使用它,前提是您包含适当的依赖项。
最好的方法是在您最喜欢的 IDE(NetBeans、IntelliJ 或 Eclipse)上使用 Gluon IDE plugin。安装插件并创建一个新项目,它将包括 Gluon Mobile 依赖项:
dependencies {
compile 'com.gluonhq:charm:4.3.0'
}
您可以 select Gluon Mobile - 带有 FXML 或 Glisten-Afterburner 模板的多视图。两者都使用 FXML,您可以使用 Scene Builder 8.3.0 为您的项目设计视图。
请注意,您将能够 运行 使用相同的代码库在桌面和移动设备(Android 和 iOS)上运行此项目。
请注意,该库不是免费的,但您可以在没有许可证的情况下充分探索它。