将 Steelseries JAR 文件加载到 Swing 调色板
Loading Steelseries JAR file to Swing palette
我刚开始将 NetBeans 用于我的一个项目,我需要在我的 GUI 中使用一个仪表。我遇到了看起来很有前途的 Steelseries,并下载了这个 JAR 文件:
http://www.java2s.com/Code/Jar/s/DownloadSteelSeries3926jar.htm
我创建了一个 Java 项目,向其中添加了库,并添加了 Swing 调色板。
Lightbulb
、Led
和 TrafficLight
等一些 bean 工作正常;但是当我选择一个仪表时,我得到这个错误:
"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.run(MetaComponentCreator.java:1450)
at org.netbeans.modules.form.FormLAF.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.access0(EventQueue.java:97)
at java.awt.EventQueue.run(EventQueue.java:709)
at java.awt.EventQueue.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.run(EventQueue.java:731)
at java.awt.EventQueue.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
, originally hosted on Kenai
, has moved to GitHub
. The project depends on the Trident
library, as seen here and in the pom.xml
.
Do you also know why the Steelseries
library is missing those needed modules?
link you mention cites pre-built JAR files, each of which excludes the dependent lib
directory seen here or the artifact reference cited here. The exact approach you take going forward will depend on your software configuration management 计划。
我刚开始将 NetBeans 用于我的一个项目,我需要在我的 GUI 中使用一个仪表。我遇到了看起来很有前途的 Steelseries,并下载了这个 JAR 文件:
http://www.java2s.com/Code/Jar/s/DownloadSteelSeries3926jar.htm
我创建了一个 Java 项目,向其中添加了库,并添加了 Swing 调色板。
Lightbulb
、Led
和 TrafficLight
等一些 bean 工作正常;但是当我选择一个仪表时,我得到这个错误:
"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.run(MetaComponentCreator.java:1450)
at org.netbeans.modules.form.FormLAF.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.access0(EventQueue.java:97)
at java.awt.EventQueue.run(EventQueue.java:709)
at java.awt.EventQueue.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.run(EventQueue.java:731)
at java.awt.EventQueue.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
, originally hosted on Kenai
, has moved to GitHub
. The project depends on the Trident
library, as seen here and in the pom.xml
.
Do you also know why the
Steelseries
library is missing those needed modules?
link you mention cites pre-built JAR files, each of which excludes the dependent lib
directory seen here or the artifact reference cited here. The exact approach you take going forward will depend on your software configuration management 计划。