Images im Jar-Archive

TheGreenman

Aktives Mitglied
Thread Starter
Dabei seit
14.05.2005
Beiträge
193
Reaktionspunkte
3
Hallo Leute!

Habe hier eine Applet, in dem ich auf Images zugreifen will. Allerdings klappt das irgendwie nicht mit der Pfadangabe. Ich habe folgenden Code:
Code:
String m = "/de/gesichterparty/client/ressource/maskottchen_m.png";
String w = "/de/gesichterparty/client/ressource/maskottchen_w.png";
    
ImageIcon wIcon = new ImageIcon(Toolkit.getDefaultToolkit().getImage(BuddyList.class.getClass().getResource(w)));
ImageIcon mIcon = new ImageIcon(Toolkit.getDefaultToolkit().getImage(BuddyList.class.getClass().getResource(m)));

Starte ich das Ganze mit dem AppletLauncher von Eclipse funktioniert es einwandfrei, verpacke ich es als Jar und rufe es über eine HTML-Seite auf, knallt es hier mit einem NullPointer. Hab schon einiges versucht, Google bemüht und die Forumssuche, hab aber leider nix passendes gefunden. Hoffe es kann mir jemand helfen!?

Gruß
TheGreenman
 
Versuch das mal:
Code:
ImageIcon wIcon = new ImageIcon(this.getImage(this.getCodeBase(), w))

Innerhalb der Applet-Klasse sollte das eigentlich funktionieren.
 
Bin hier allerdings nicht in der Appletklasse, sondern in einer Komponente des Applets. Funktioniert also nicht wirklich. Kann hier auch nicht auf eine Referenz der Appletklasse zugreifen, bzw. will ich an der Stelle nicht.

Gruß
TheGreenman
 
Aber wenn du ein Applet hast must du doch irgendeine Klasse haben die von java.applet.Applet oder javax.swing.JApplet erbt.

das hier sollte eigentlich in jeder x-beliebigen Klasse laufen:
Code:
ImageIcon wIcon = new ImageIcon(this.getClass().getClassLoader().getSystemResource( w ));
 
Ja klar hab ich eine Klasse die von JApplet erbt. Aber ich hab in meiner Komponente allerdings keine Referenz auf diese Klasse und ich will hier auch keine, da sie da nix verloren hat. Dein Code funktioniert allerdings auch nicht.
Vielleicht noch eine Idee????

Gruß
TheGreenman
 
Ideen hab ich im Augenblick keine, nur ein paar Fragen.

Liegen die Dateien innerhalb der Jar-Datei?
Sind die Pfade richtig?
Treten beim Laden der Bilder irgendwelche Exceptions auf?
 
Jo die Bilder liegen im Jar. Hab extra ein Paket für Resourcen angelegt. Von daher sollte der Pfad zum Paket bzw. zum Bild auch korrekt sein. Beim laden der Bilder tritt immer eine NullPointerException auf, da er das Bild nicht findet. Allerdings findet er das Bild, wenn ich das Programm mit dem AppletLauncher von Eclipse starte. Nur wenn ich es als Jar-Verpacke und von einer HTML-Seite aus im Browser aufrufe, funktioniert das Ganze nicht.

Gruß
TheGreenman
 
Ich hab mir grad nochmal meine alten Applets angeschaut. Und da funktionieren meine bildlade-Methoden. Es gibt da nur einen Unterschied zu deinem Quelltext: Bei mir beginnen die Dateipfade nicht mit "/".

...

Ich hab jetzt in einem der Applets die Pfade mal um "/" erweitert und jetzt bekomme ich beim Laden der Bilder auch Nullpointer-Exceptions. Lass die "/" am Anfang der Pfade mal weg. Wenn das nicht klappt, dann weiss ich auch nicht mehr weiter.
 
Tja leider hat das auch nicht funktioniert! Verstehe es so ziemlich gar nicht. Naja muss ich mal weitersuchen, wenn keiner mehr eine Ahnung hat.

@mefir: Vielen Dank für deine Mühe. Vielleicht fällt dir ja doch noch was ein.

Gruß
TheGreenman
 
So ich habe das Problem gelöst und zwar wie folgt:
Code:
String m = "/de/gesichterparty/client/ressource/maskottchen_m.png";
String w = "/de/gesichterparty/client/ressource/maskottchen_w.png";


ImageIcon wIcon = new ImageIcon(BuddyList.class.getResource(w));
ImageIcon mIcon = new ImageIcon(BuddyList.class.getResource(m));

Manchmal ist der einfachste Weg, der Beste ;-)

Gruß
TheGreenman
 
Schön, dass du es geslöst hast.
Ich hass diese verdammten "Wald-vor-Bäumen"-Probleme.
 
Wie du bemerkt hast, kenne ich dieses Problem nur zu gut :D

Gruß
TheGreenman
 
Zurück
Oben Unten