Evo Evo - 4 months ago 53
Java Question

Loading Steelseries JAR file to Swing palette

I just started using NetBeans for a project of mine, and I needed a gauge in my GUI. I came across the Steelseries which looks really promising, and downloaded this JAR file:

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

I created a Java Project, added the Library to it, and added the Swing palette.
Some beans like

Lightbulb
,
Led
, and
TrafficLight
work fine; but when I choose a gauge, I get this error:


"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."


The exception stack trace follows:

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

Answer

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?

The 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 plan.