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");