Thema: [vril] Log
Einzelnen Beitrag anzeigen
Alt 03.11.2005, 23:31   #2 (permalink)
Vril
Stammbenutzer
Viertel Megabyte
 
Registriert seit: 02.12.2004
Fachbeiträge: 345
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Das Problem mit den Image im Html-Text hat nichts mit ResourceBundles zu
tun. Es ist eher ein Problem von Swing.

"<html><img src='" + this.getClass().getResource("img/bombenfest.gif") +
"'>Sehr schön</html>"

ist nicht identisch mit

"<html>[img]img/bombenfest.gif[/img]Sehr schön</html>"

Im ersten Fall wird von getResource() eine absolute URL für das Bild
erzeugt. Im zweiten Fall ist die URL relativ, aber Swing kennt die
"Basis" nicht. Deshalb wird das Bild nicht gefunden.

Es gibt also zwei Lösungsmöglichkeiten:
a) (falls möglich) absolute url im HTML Text eintragen
b) relative url und Basis im Code festlegen

Swing verwendet javax.swing.plaf.basic.BasicHTML.createHTMLView() um den
Html-Text zu Rendern. Siehe Sourcecode von BasicHTML. Da gibt es die
Möglichkeit, eine Basis für die Image-URL festzulegen. Z.B.

radioButton.putClientProperty( BasicHTML.documentBaseKey, baseUrl );

wobei baseUrl vom Typ URL sein muß. Wie man an die "richtige" baseUrl
kommt, weis ich nicht so richtig. Vielleicht mit getResource().
Oder mit getClass().getProtectionDomain().getCodeSource().getLocation()
Hab ich aber nicht ausprobiert.

Das Erzeugen der ImageUrl erfolgt in Swing in
javax.swing.text.html.ImageView.getImageURL() und sieht so aus:

URL u = new URL(baseUrl,"img/bombenfest.gif");
Vril ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen