java - 将 Steelseries JAR 文件加载到 Swing 调色板

标签 java swing steelseries

我刚刚开始在我的一个项目中使用 NetBeans,我需要在 GUI 中使用一个仪表。我遇到了Steelseries看起来确实很有希望,并下载了这个 JAR 文件:

http://www.java2s.com/Code/Jar/s/DownloadSteelSeries3926jar.htm

我创建了一个 Java 项目,向其中添加了库,并添加了 Swing 调色板。 一些 bean,例如 Lightbulb、Led 和 TrafficLight 可以正常工作;但是当我选择仪表时,我收到此错误:

"Cannot load component class eu.hansolo.steelseries.extras.Radar from JAR file. The class itself was found, but there was a problem initializing it, e.g. due to an exception in static initializer, or failure in loading an additional class needed by the component class."

异常堆栈跟踪如下:

java.lang.NoClassDefFoundError: org/pushingpixels/trident/ease/TimelineEase
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at org.netbeans.modules.form.project.ClassPathUtils.loadClass(ClassPathUtils.java:114)
    at org.netbeans.modules.form.MetaComponentCreator$5.run(MetaComponentCreator.java:1450)
    at org.netbeans.modules.form.FormLAF$2.run(FormLAF.java:293)
    at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.doEventAccess(NbMutexEventProvider.java:138)
    at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.readAccess(NbMutexEventProvider.java:98)
    at org.netbeans.modules.openide.util.LazyMutexImplementation.readAccess(LazyMutexImplementation.java:94)
    at org.openide.util.Mutex.readAccess(Mutex.java:250)
    at org.netbeans.modules.form.FormLAF.executeWithLookAndFeel(FormLAF.java:276)
    at org.netbeans.modules.form.MetaComponentCreator.prepareClass(MetaComponentCreator.java:1446)
    at org.netbeans.modules.form.MetaComponentCreator.precreateVisualComponent(MetaComponentCreator.java:258)
    at org.netbeans.modules.form.MetaComponentCreator.precreateVisualComponent(MetaComponentCreator.java:298)
    at org.netbeans.modules.form.HandleLayer$NewComponentDrag.init(HandleLayer.java:3369)
    at org.netbeans.modules.form.HandleLayer$NewComponentDrag.<init>(HandleLayer.java:3361)
    at org.netbeans.modules.form.HandleLayer$NewComponentDropListener.dragEnter(HandleLayer.java:3658)
    at java.awt.dnd.DropTarget.dragEnter(DropTarget.java:358)
    at sun.awt.dnd.SunDropTargetContextPeer.processEnterMessage(SunDropTargetContextPeer.java:331)
    at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEnterEvent(SunDropTargetContextPeer.java:799)
    at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEvent(SunDropTargetContextPeer.java:767)
    at sun.awt.dnd.SunDropTargetEvent.dispatch(SunDropTargetEvent.java:48)
    at java.awt.Component.dispatchEventImpl(Component.java:4746)
    at java.awt.Container.dispatchEventImpl(Container.java:2294)
    at java.awt.Component.dispatchEvent(Component.java:4713)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
    at java.awt.LightweightDispatcher.retargetMouseEnterExit(Container.java:4676)
    at java.awt.LightweightDispatcher.trackDropTargetEnterExit(Container.java:4625)
    at java.awt.LightweightDispatcher.trackMouseEnterExit(Container.java:4638)
    at java.awt.LightweightDispatcher.processDropTargetEvent(Container.java:4591)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4461)
    at java.awt.Container.dispatchEventImpl(Container.java:2280)
    at java.awt.Window.dispatchEventImpl(Window.java:2750)
    at java.awt.Component.dispatchEvent(Component.java:4713)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.awt.EventQueue$4.run(EventQueue.java:731)
    at java.awt.EventQueue$4.run(EventQueue.java:729)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
    at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.ClassNotFoundException: org.pushingpixels.trident.ease.TimelineEase
    at org.netbeans.modules.form.project.ProjectClassLoader.findClass(ProjectClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 52 more

最佳答案

SteelSeries ,最初托管于 Kenai ,已移至GitHub 。该项目取决于Trident图书馆,如所见here并在 pom.xml .

Do you also know why the Steelseries library is missing those needed modules?

link您提到引用了预构建的 JAR 文件,每个文件都不包括看到的依赖 lib 目录 here或引用的工件引用 here 。您接下来采取的具体方法将取决于您的 software configuration management计划。

关于java - 将 Steelseries JAR 文件加载到 Swing 调色板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38432526/

相关文章:

java - 允许Java应用程序在录制音频时继续运行

java - Netbeans 找不到库

java - Android SQlite 列号不匹配?

java - 设置文件的只读属性

java - OSX 上的 sdkman 既不能安装也不能卸载 Java 1.8

java - 抽象类和具体类之间的独特区别

java - 使用组件/值加载 JList

java - 将标签设置为在操作监听器中可见