# setImageIcon Problem



## ModellbahnerTT (27. Jul 2009)

Hallo,
ich hab folgendes Problem:
Bei mir ändert sich das Icon des Programms nicht mit folgendem Code:

```
setIconImage(Toolkit.getDefaultToolkit().getImage("icon.png"));
```
Es wird immernoch das Kaffeesymbol dargestellt in der Taskleiste.
Hab aber eine Vermutung: Die Funktion wird in einer JFrame-Klasse aufgerufen.
Müsste es vielleicht in einer JWindow-Klasse sein?


----------



## Michael... (27. Jul 2009)

vermutlich liefert Toolkit.getDe... null zurück. Dann wird immer das Standardicon verwendet.
Ich verwende in der Regel folgende Art Bilder zu laden, ist vor allem besser, wenn den Code später in jar-Archive steckt:

```
this.getClass().getResource("/mein/package/resources/icon.png")
```


----------



## ModellbahnerTT (27. Jul 2009)

Es wird "sun.awt.image.ToolkitImage@3c72bc1b" zurückgegeben, d.h. das Bild existiert oder?


----------



## Ebenius (27. Jul 2009)

ModellbahnerTT hat gesagt.:


> Es wird "sun.awt.image.ToolkitImage@3c72bc1b" zurückgegeben, d.h. das Bild existiert oder?


Nein. Das Image wird im Hintergrund geladen, daher ist es dem Toolkit nicht möglich, Dir [c]null[/c] zurück zu geben, wenn die Bildquelle nicht existiert: 
	
	
	
	





```
final Toolkit tk = Toolkit.getDefaultToolkit();
    System.out.println(tk.getImage("bbbbbbbbbbbbbbbbbbbb"));
```
Ausgabe:

```
sun.awt.image.ToolkitImage@1f17e77
```
Ebenius


----------



## ModellbahnerTT (27. Jul 2009)

Wie kann ich ein Bild per Java laden das direkt im jar-Root-Verzeichnis liegt?

```
new ImageIcon("open.png");
```
zeigt das Bild nicht an,

```
new ImageIcon(System.getProperty("user.dir") + File.separatorChar + "icons" + File.separatorChar + "open.png");
```
zeigt das Bild zwar beim Testen an, wenn die jar so gestartet wird, wird es nicht angezeigt.

Wie soll man am besten ein ImageIcon einbinden?

```
this.getClass().getResource("icons/open.png")
```
Klappt irgendwie auch nicht...


----------



## Ebenius (27. Jul 2009)

So: 
	
	
	
	





```
new ImageIcon(getClass().getResource("/icons/open.png"));
```
Ebenius


----------



## ModellbahnerTT (27. Jul 2009)

Wirft bei mir leider ein "java.lang.NullPointerException".


----------



## Ebenius (27. Jul 2009)

Dann ist die URL [c]null[/c] und das liegt wahrscheinlich daran, dass es im JAR keine Datei "icons/open.png" gibt.

Ebenius


----------

