# ExceptionInInitializerError



## Marcello (16. Mai 2007)

Hi,

wollte nach etwas längerer Zeit mal wieder eine GUI schreiben und erstma recht einfach anfangen, also ne alte Klasse zur Vorlage genommen, die dann nach und nach erweitert werden sollte.

Doch beim ausführen schmeisst er dann oben genannte Exception, wobei ich mir recht sicher bin, dass die Klasse genau so bereits früher einwandfrei funktioniert hat. Habe also keinen blassen Dunst woran es liegen könnte.

Hier die Klassen:

- Fenster

```
public class Fenster extends JFrame
{
	public Fenster(String titel, ImageIcon icon, Rectangle groesse, Color farbe)
	{
		setTitle(titel);
		setIconImage(icon.getImage());
		setBounds(groesse);
		getContentPane().setBackground(farbe);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}
```

- Main

```
public class Main
{
	public static void main(String[] args)
	{
		/** Fenstereigenschafte festlegen **/
		String titel = "Basketballverwaltung";
		ImageIcon icon = new ImageIcon("icon/icon.jpg");
		Color farbe = Color.LIGHT_GRAY;
		int breite = 800;
		int hoehe = 700;
		Rectangle groesse = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize().width / 2 - (breite / 2), 
																			Toolkit.getDefaultToolkit().getScreenSize().height / 2 - (hoehe / 2), breite, hoehe);
		
		Fenster hauptfenster = new Fenster(titel, icon, groesse, farbe);
		hauptfenster.setVisible(true);
	}
}
```

Hoffe jemand erkennt das Problem, danke schonmal!


----------



## André Uhres (17. Mai 2007)

Im Code selbst ist natürlich kein Problem, da er schonmal lief. 
Liegt sicher an einer veränderten Umgebung.
Wenn du eine IDE benutzt, dann legt mal ein neues Projekt an und kopier die Quelldateien dorthin.


----------



## Marcello (17. Mai 2007)

habe ich auch schon probiert, hat leider nichts geändert.

Habe aber vor ein paar Tagen von JRE auf JDK gewechselt, weil ein RMI Compiler gefehlt hat.

Kann es daran liegen? Und noch wichtiger: falls ja was kann ich jetzt machen (ausser zurückwechseln)?

/ Edit: Habe es gerade mit der alten versucht, hat auch nichts geändert


----------



## kleiner_held (17. Mai 2007)

Ich sehe in deinem Code keinen Punkt an dem ich einen ExceptionInInitializerError erwarte.
Der Error kapselt eine Exception die während der Initialisierung einer Klasse auftritt. Wie ist die Fehlerausgabe genau?

Wenn ich zum Beispiel

```
public class Test
{
    static
    {
        if (true)
            throw new NullPointerException();
    }

    public static void main(String[] args)
    {
    }
}
```

ausfuehre, dann sagt mir meine JVM:


```
Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.lang.NullPointerException
	at Test.<clinit>(Test.java:6)
```

Damit laesst sich die Fehlerursache eigentlich ganz einfach finden.


----------



## Marcello (18. Mai 2007)

Also genaue Fehlermeldung:

Exception in thread "main" java.lang.ExceptionInInitializerError
	at javax.swing.JPanel.updateUI(Unknown Source)
	at javax.swing.JPanel.<init>(Unknown Source)
	at javax.swing.JPanel.<init>(Unknown Source)
	at javax.swing.JPanel.<init>(Unknown Source)
	at javax.swing.JRootPane.createGlassPane(Unknown Source)
	at javax.swing.JRootPane.<init>(Unknown Source)
	at javax.swing.JFrame.createRootPane(Unknown Source)
	at javax.swing.JFrame.frameInit(Unknown Source)
	at javax.swing.JFrame.<init>(Unknown Source)
	at gui.Fenster.<init>(Fenster.java:29)
	at gui.Fenster.<init>(Fenster.java:42)
	at gui.Fenster.<init>(Fenster.java:55)
	at gui.Fenster.<init>(Fenster.java:69)
	at Main.main(Main.java:26)
Caused by: java.lang.IllegalArgumentException: 636179 incompatible with Text-specific LCD contrast key
	at java.awt.RenderingHints.put(Unknown Source)
	at sun.awt.windows.WDesktopProperties.getDesktopAAHints(Unknown Source)
	at sun.awt.windows.WToolkit.getDesktopAAHints(Unknown Source)
	at sun.awt.SunToolkit.getDesktopFontHints(Unknown Source)
	at sun.awt.windows.WDesktopProperties.setDesktopAAHints(Unknown Source)
	at sun.awt.windows.WToolkit.initializeDesktopProperties(Unknown Source)
	at java.awt.Toolkit.getDesktopProperty(Unknown Source)
	at javax.swing.UIManager.<clinit>(Unknown Source)
	... 14 more


----------



## Wildcard (18. Mai 2007)

Marcello hat gesagt.:
			
		

> at Main.main(Main.java:26)


Scherzkeks  :? 
Die Klasse die du gepostet hast hat gar keine 26 Zeilen.


----------



## Marcello (18. Mai 2007)

Ja hab die Importe und sowas weggelassen:

so sieht die Main komplett aus:


```
import gui.Fenster;

import java.awt.Color;
import java.awt.Rectangle;
import java.awt.Toolkit;

import javax.swing.ImageIcon;

/** Ist eine Verwaltung für Basketballmannschaften in verschiedenen Ligen.
 * @author 
 * @version 15.05.2007
 */
public class Main
{
	public static void main(String[] args)
	{
		/** Fenstereigenschafte festlegen **/
		String titel = "Basketballverwaltung";
		ImageIcon icon = new ImageIcon("icon/icon.jpg");
		Color farbe = Color.LIGHT_GRAY;
		int breite = 800;
		int hoehe = 700;
		Rectangle groesse = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize().width / 2 - (breite / 2), 
																			Toolkit.getDefaultToolkit().getScreenSize().height / 2 - (hoehe / 2), breite, hoehe);
		
		Fenster hauptfenster = new Fenster(titel, icon, groesse, farbe);
		hauptfenster.setVisible(true);
	}
}
```


Und hier die Fensterklasse komplett:


```
package gui;

import java.awt.Color;
import java.awt.Rectangle;

import javax.swing.ImageIcon;
import javax.swing.JFrame;

/** Ist ein Fenster, das mit den uebergebenen Eigenschaften erzeugt werden kann.
 * @author 
 * @version 16.06.2006
 */
public class Fenster extends JFrame
{

	/** Serielle Standard-Versions ID */
	private static final long serialVersionUID = 1L;
	
	/** Erstellt ein neues Fenster ohne spezifische Eigenschaften.
	 */
	public Fenster()
	{
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	/** Erstellt ein neues Fenster und setzt den Titel des Fensters auf den uebergebenen Wert.
	 * @param titel Der Titel des Fensters.
	 */
	public Fenster(String titel)
	{
		setTitle(titel);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	/** Erstellt ein neues Fenster, setzt den Titel des Fensters auf den uebergebenen Wert und bestimmt Position und Groesse des Fensters
	 *  aus den uebergebenen Werten.
	 * @param titel Der Titel des Fensters.
	 * @param groesse Die Groesse und Position des Fensters.
	 */
	public Fenster(String titel, Rectangle groesse)
	{
		this(titel);
		setBounds(groesse);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	/** Erstellt ein neues Fenster, setzt den Titel des Fensters auf den uebergebenen Wert, setzt das uebergebene Icon in die Titelleiste
	 *  und bestimmt Position und Groesse des Fensters aus den uebergebenen Werten.
	 * @param titel Der Titel des Fensters.
	 * @param icon Das Icon des Fensters.
	 * @param groesse Die Groesse und Position des Fensters.
	 */
	public Fenster(String titel, ImageIcon icon, Rectangle groesse)
	{
		this(titel, groesse);
		setIconImage(icon.getImage());
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	/** Erstellt ein neues Fenster, setzt den Titel des Fensters auf den uebergebenen Wert, setzt das uebergebene Icon in die Titelleiste,
	 *  bestimmt Position und Groesse des Fensters aus den uebergebenen Werten und setzt die Farbe des Fensters auf den uebergebenen Wert.
	 * @param titel
	 * @param icon
	 * @param groesse
	 * @param farbe
	 */
	public Fenster(String titel, ImageIcon icon, Rectangle groesse, Color farbe)
	{
		this(titel, icon, groesse);
		getContentPane().setBackground(farbe);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}
```


----------



## Wildcard (18. Mai 2007)

Lass mal das Icon weg und schau ob der Fehler noch kommt.


----------



## SlaterB (18. Mai 2007)

allgemeiner Tipp:
solche extremen Fehlermeldungen führen mit etwas Glück bei google zu anderen, die exakt das gleiche Problem hatten

hier ist Suche allerding etwas dürftig:
http://www.google.de/search?hl=de&q...xt-specific+LCD+contrast+key&btnG=Suche&meta=
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6503988
von Lösungen kann auch nicht die Rede sein, aber vielleicht stimmt ja die Diagnose?


----------



## Wildcard (18. Mai 2007)

clear type power toy... das könnte wirklich eine erklärung sein. Oder einer dieser 'tollen' Windows Styles...


----------



## Marcello (18. Mai 2007)

also icon weglassen hat schonmal nichts geändert, die google sachen guck ich mir gleich mal in ruhe an, hab jetzt auf die schnelle nichts hilfreiches entdeckt.

danke schonmal für die mühe.


/ EDIT: 

Wow also ganz ehrlich, ich waer auf ne Menge Sachen gekommen, aber das is kurios. Lag tatsächlich daran.
Hab es installiert und die Werte korrigiert und nun geht es einwandfrei.

Bin euch sehr dankbar, kann jetzt endlich weiterarbeiten!


----------

