# SWINGX richtig nutzen



## ThorstieB (3. Aug 2011)

Hallo Forum,
auf der SUche nach einer geeigneten Überschrift habe ich den JXHeader gefunden, leider funktioniert dieser bei mir nicht und ich kann mir nicht erklären warum.

HIer einmal der TextCode:

```
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.border.TitledBorder;

import org.jdesktop.swingx.JXHeader;


public class header extends JFrame {

	private JPanel contentPane;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					header frame = new header();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public header() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		contentPane.setLayout(new BorderLayout(0, 0));
		setContentPane(contentPane);
		
		JPanel panel = new JPanel();
		panel.setBorder(new TitledBorder("Titel"));
		add(panel);
		
		JXHeader header2 = new JXHeader();
		 
		header2.setTitleForeground(Color.BLUE);
		header2.setTitle("Programmeinstellungen vornehmen");
		 
		header2.setDescription("Nehmen Sie hier Ihre Programmeinstellungen und " + 
		   "Netzwerkoptionen vor.");
		 
		//Icon icon = new ImageIcon(getClass().getResource("settings.png"));
		//header.setIcon(icon);
		//header.setIconPosition(JXHeader.IconPosition.LEFT);
		
	}

}
```

hier die *jar die ich dem Buildpath hinzugefügt habe:
http://swinglabs.java.sun.com/hudson/job/SwingX%20Continuous%20Build/lastStableBuild/org.swinglabs$swingx-all/

dennoch bekomme ich diesen Fehler:
java.lang.NullPointerException
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:169)
	at org.jdesktop.swingx.plaf.LookAndFeelAddons.getUI(LookAndFeelAddons.java:303)
	at org.jdesktop.swingx.JXHeader.updateUI(JXHeader.java:181)
	at javax.swing.JPanel.<init>(JPanel.java:69)
	at javax.swing.JPanel.<init>(JPanel.java:92)
	at javax.swing.JPanel.<init>(JPanel.java:100)
	at org.jdesktop.swingx.JXPanel.<init>(JXPanel.java:126)
	at org.jdesktop.swingx.JXHeader.<init>(JXHeader.java:113)
	at header.<init>(header.java:48)
	at header$1.run(header.java:24)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)


aber warum?
vielen Dank für die Hilfe!!!


----------



## turtle (3. Aug 2011)

Du hast vergessen dem Panel den Header hinzuzufügen

```
header2.setDescription("Nehmen Sie hier Ihre Programmeinstellungen und " + 
           "Netzwerkoptionen vor.");
        panel.add(header2); // missing
```


----------



## ThorstieB (3. Aug 2011)

leider ändert sich dann nur der Fehler:

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/jdesktop/swingx/plaf/ComponentAddon
	at header.<init>(header.java:62)
	at header$1.run(header.java:37)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.ClassNotFoundException: org.jdesktop.swingx.plaf.ComponentAddon
	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
	... 10 more


----------



## turtle (3. Aug 2011)

Läuft bei mir.

PS: Klassennamen sollten mit einem GROSS-Buchstaben beginnen


----------



## ThorstieB (3. Aug 2011)

also bei mir will das einfach nicht*G*-so wie auf deinem Bild ist es optimal
kann das auch an meiner Java-version 1.6.0_18 oder an meiner Eclipseversion(Helios) liegen?


----------



## turtle (3. Aug 2011)

kann ich nicht glauben, obwohl ich Eclipse-Indigo nutze.

Ich habe swingx-core-1.6.2.jar im Build-Path. Ich probier es mal gerade unter Helios...

Geht auch unter Helios.


----------



## ThorstieB (3. Aug 2011)

dann liegt es eher an der swing-Version ich habe 1.6.3, werde jetzt mal die 1.6.2 suchen. mfg thorsten

und vielen Dank für deine Hilfe. Ich kann leider wirklich nur auf die development-Versionen zugreifen und da ist die letzte stable-Version leider die 1.6.3


Ha, mit 1.6.2 funktioniert es wunderbar vielen Dank dir!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


----------



## Kleopatra (8. Aug 2011)

1.6.3? Warst wohl zurück in der Zukunft  Letzter release ist 1.6.2, nächster schon seit längerem "fast fertig", leider haben wir Probleme mit der Infrastruktur.

Gruß
Jeanette


----------

