JFrame Icon setzen?

chriss_2oo4

Erfahrenes Mitglied
Hi,

ich möchte gerne dass auf der linken oberen Seite meines JFrames nicht das Standard-Java-Icon angezeigt wird. Dazu bin ich wie gefolgt vorgegangen:

ImageIcon imageIcon = new ImageIcon("ico.gif");
this.setIconImage(imageIcon.getImage());


ico.gif liegt im gleichen Verzeichnis wie die .java Datei und hat eine Aufllösung von 16x16 Pixeln, des Weiteren ist eine Transparenz-Farbe hinterlget.

Woran kann es liegen, dass mit den o. g. Codeauszügen immer noch das standardmäßige Icon angezeigt wird?

Lg Chriss
 
So wie du es aufrufst wird versucht ico.gif im Ausführungsverzeichnis deines Programms zu finden.

Willst du es da liegen lassen wo es ist, so mache folgendes:
Java:
URL url = DeineKlasse.class.getResource("ico.gif");
ImageIcon icon = new ImageIcon(url);

Beachte allerdings dass es so nur funktioniert wenn das ico.gif auch bei den kompilierten class Dateien genauso dabei liegt.
 
Hab ich auch schon probiert, folgender Code führt dazu, dass nur noch ein Frame mit minimaler Größe angezeigt wird:

ImageIcon icon = new ImageIcon(MeineKlasse.class.getResource("ico.gif"));
this.setIcon(icon);


Fehlermeldung:

java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)


Lg Chriss
 
Ja ich sage ja: Überprüf bitte ob bei deinen class-Dateien das Icon auch liegt. Ansonsten funktioniert das ganze nicht. Aus diesem Grund auch die Rückgabe von getResource erst auf null prüfen und erst dann verwenden.
 
Und ich seh grad das mit "MeineKlasse.class.getResource("ico.gif")" schon in den pfad der klase gewechselt wurde :oops:
 
Zurück