SmartGWT - iButton Icons werden nicht angezeigt

Andyx1975

Mitglied
Hallo,

ich habe eine Frage zu smartGWT. Wenn ich einen Button wie folgt erzeuge:

final Button cssButton = new Button("CSS Button");
cssButton.setShowRollOver(true);
cssButton.setShowDisabled(true);
cssButton.setShowDown(true);
cssButton.setIcon("icons/16/icon_add_files.png");


Wo muss ich dann den png file ablegen? Wie soll meine Ordnerstruktur sein? Wenn ich die folgende Struktur anlege "[Eclipse Proktordner] => icons => 16" werden mir keine Bilder angezeigt. Kann mir jemand weiterhelfen und sagen was ich falsch mache? Danke******

Gruß
Andy
 
Bei relativen Pfaden auch immer relativ zum ROOT-Pfad des Loaders. Wenn du z.B. eine Klasse die über CP bekannt ist startest und dort relative Pfade nutzt werden diese zu dem Verzeichnis relativ gesetzt wo du dich befindest wenn du Java startest.
Ich empfehle dir also erstmal den aktuellen RROT-Pfad herrauszubekommen. Wie das ins besondere mit GWT geht weis ich nicht ... aber in Java gibt es dazu zwei Möglichkeiten :
Java:
File dir=new File(".");
//oder
String path=this.getClass().getResource(".").toString();
//auch möglich
String path=this.getClass().getClassLoader().getResource(".").toString();
Es gibt einige Fälle in denen zwischen den beiden unteren Unterschiede auftreten. Warum weis ich auch nicht so genau. Ich persönlich bevorzuge diese Methode *warscheinlich nicht mit GWT umsetzbar*
Java:
String path=this.getClass().getResource(this.getClass().getSimpleName()+".class").toString(); // Pfad zur aktuellen Klasse holen
if(path.contains("!")) // prüfen ob Klasse in einem Jar steckt
	path=path.substring(0, path.indexOf("!")); // Jar-Teil abschneiden , nun haben wir das Jar-File
path=(new File(path.indexOf("/"), path.lastIndexOf("/"))).getAbsolutePath(); // Pfad holen *funktioniert auch unter Unix*
Aber wie gesagt : das wirst du so nicht in GWT umsetzen können.
 
hi...danke für dein Info...bezieht dies wirklich auf SmartGWT. Im Swing Unfeld funktioniert dies ohne Probleme. Ich habe eben herausgefunden, wenn ich die Bilder im WAR Verzeichnis unter "icons => 16" platziere, funktioniert die Methode cssButton.setIcon("icons/16/icon_add_files.png");
 
Zurück