How to set the JGoodies Look and Feel?

maysi picture maysi · Feb 19, 2014 · Viewed 10.3k times · Source

I added the jgoodies-looks-2.5.3.jar to my buildpath and started it with

public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    UIManager.setLookAndFeel("com.jgoodies.looks.windows.WindowsLookAndFeel");
                    ExpenseManagerGUI frame = new ExpenseManagerGUI();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

But I get the following Error: (How to fix this?)

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: com/jgoodies/common/base/SystemUtils
    at com.jgoodies.looks.common.ShadowPopupFactory.install(ShadowPopupFactory.java:116)
    at com.jgoodies.looks.windows.WindowsLookAndFeel.initialize(WindowsLookAndFeel.java:199)
    at javax.swing.UIManager.setLookAndFeel(Unknown Source)
    at javax.swing.UIManager.setLookAndFeel(Unknown Source)
    at de.mayerhofersimon.expensemanager.ExpenseManagerGUI$2.run(ExpenseManagerGUI.java:94)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.jgoodies.common.base.SystemUtils
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 19 more

Answer

tddmonkey picture tddmonkey · Feb 19, 2014

Looks very much like you're missing the jgoodies-common.jar on your classpath.

You can get this from Maven

I would strongly recommend using a dependency management system for your build which should avoid these kinds of problems in the future