Images laden

Das Problem...

0023_options_cancel.png
In Java gibt es verscheidene Möglichkeiten ein Bild in den Speicher zu laden. Die erste, und wohl eine der bekanntesten, vorallem bei Anfängern, ist die File Methode.  Beispiel:

ImageIO.read(new File("/icons/haus.png"));

Sieht sehr einfach aus, und funktioniert in den meisten Fällen auch - solange man es aus einer IDE starten. Versucht man nun das ganze als jar zu verpacken und gar als Java-Webstart Programm laufen zu lassen, klappt das nicht mehr.

Die Lösung

0022_options_ok.png
Die Lösung für das Problem sieht eigentlich relativ einfach aus:

ImageIO.read(this.getClass().getResource("/icons/haus.png"));

Nun wird das Bild über den sogenannten Class loader geladen. Daher muss das Bild auch in einem Ordner legen der Teil des Klassenpfades ist. Nur so können die Resource geladen werden wenn das Programm aus einem jar gestartet wird.