Kay: Icon auf JButton

Hallo,

ich habe folgendes Problem:
ich möchte ein Icon auf einer Schaltfläche anzeigen lassen. Ich verwende hierfür den JButton mit folgendem Konstruktor:
btOk = new JButton("OK", new ImageIcon("Ok.gif"));

Wenn ich die Anwendung kompiliere und starte, wird das ensprechende Icon problemlos dargestellt.
Wenn ich aber nun die .class-Dateien in eine .jar-Datei packe, dann wird das Icon nicht mehr auf die Schatfläche gezeichnet; es kommt aber halt auch kein Fehler - es wird eben einfach nichts angezeigt.
Zum Erstellen der .jar-Datei verwende ich folgenden Befehl:
jar cvfm Datei.jar MANIFEST.MF *.class *.gif

Wenn ich mir das Archiv im WinZip anschaue, dann sind auf jeden Fall alle benötigten Dateien enthalten!
Wie liegt das Problem?

Vielen Dank,
Kay

  1. Hallo Kay,

    btOk = new JButton("OK", new ImageIcon("Ok.gif"));

    Eine relative Pfadangabe bezieht sich auf das Arbeitsverzeichnis des Programms. Du weißt aber nur, wo das Bild relativ zur Klasse liegt.
    Um solche Resourcen zu laden, eignet sich die Methode Class.getResource(String) die eine absolute URL zurück gibt.
    Du kannst das Bild also so laden:
    btOk = new JButton("OK", new ImageIcon(getClass().getResource("Ok.gif")));

    Grüße

    Daniel