【问题标题】:scenebuilder layer classnotfound未找到场景构建器图层类
【发布时间】:2017-01-08 08:25:33
【问题描述】:

我有问题。我使用了 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

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

【问题讨论】:

  • 您是否将这个库的组件(com.gluonhq.charm.glisten)正确添加到您的项目路径中?
  • @BoHalim 不,我没有。它不是来自 JavaFx 的库吗?如果是这样,如何将此库添加到项目路径中?

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


【解决方案1】:

您可以在任何 JavaFX 项目中使用 Scene Builder 的容器或控制面板中包含的所有组件(以及菜单、形状、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)上运行此项目。

请注意,该库不是免费的,但您可以在没有许可证的情况下完全探索它。

【讨论】:

  • 我现在知道了。非常感谢:d
猜你喜欢
  • 1970-01-01
  • 2016-12-17
  • 2012-08-29
  • 1970-01-01
  • 1970-01-01
  • 2018-04-06
  • 1970-01-01
  • 2020-04-01
  • 1970-01-01
相关资源
最近更新 更多