scenebuilder图层classnotfound

时间:2017-01-08 08:25:33

标签: javafx javafx-2 javafx-8 scenebuilder gluon

我遇到了问题。我使用了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$launchApplication1$162(LauncherImpl.java:863)
    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
    at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(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$null$148(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

你能帮我解决这个问题吗? 提前谢谢。

1 个答案:

答案 0 :(得分:2)

您可以在任何JavaFX项目中使用Scene Builder中的Container或Control面板中包含的所有组件(以及菜单,形状,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'
}

您可以选择使用FXML或Glisten-Afterburner模板的Gluon Mobile - MultiView。两者都使用FXML,您可以使用Scene Builder 8.3.0为您的项目设计视图。

请注意,您可以使用相同的代码库在桌面和移动设备(Android和iOS)上运行此项目。

请注意,该库不是免费的,但您无需许可即可完全浏览它。