# ResourceBundle & Bilder => JFormDesigner



## Vril (2. Nov 2005)

Hallo,
hab mein ResourceBundle für einen ToolTipText endlich zum laufen gebracht. Jetzt würde ich gerne mit html arbeiten um den ToolTip ein Bild beizufügen. Der Text wird angezeigt, aber für das Bild kommt nur ein broken image im ToolTip. Wenn ich dem ToolTip folgenden String übergebe, also ohne ResourceBundle, wird das Bild angezeigt, mit Resource Bundle das besagte broken image:

```
String tooltip = "<html>[img]"+this.getClass().getResource("img/bombenfest.gif")+"[/img]Ein Bild</html>";
```
Was mache ich falsch? Oder geht das mit Bildchen und ResourceBundle nicht?


----------



## SebiB90 (2. Nov 2005)

du musst den pfad der datei/des bildes bei src angeben


----------



## Vril (2. Nov 2005)

Du meinst so?

```
radioButton9.toolTipText= <html>[img]img/bombenfest.gif[/img]Ein Bild</html>"
```
Also so geht es leider auch nicht!


----------



## Roar (3. Nov 2005)

so gehts, aber du würdest einfacher kommen das bild einfach so zu laden 


```
JLabel label = new JLabel(rm.getString("ui.prefs.servers.sprefs.buffer2"));
			URL resource = getClass().getResource("../../../res/icons/");
			label.putClientProperty("html.base", resource);
			buffer.add(label, BorderLayout.NORTH);
			label.updateUI();
```


----------



## Vril (3. Nov 2005)

Hm, so bekomme ich es auch nicht hin. Versteh das Prinzip nicht, wenn ich dem ToolTipText einen String übergebe
funktioniert es einwandfrei. Arbeite ich aber mit dem ResourceBundle geht es nicht. Seltsam, durch das
ResourceBundle wird dem ToolTipText ja auch nur einen String übergeben? Oder versteh ich da jetzt was falsch?

Also ich gehe langsam schwer davon aus das dieses Problem wohl eher beim JFormDesigner bzw. meiner Nutzung
dieses Tools zu finden ist? Denn versuche ich folgendes im Quelltext direkt, wird das Bild einwandfrei angezeigt:

```
radioButton1.setToolTipText("<html>[img]"+this.getClass().getResource("img/bild1.gif")+"[/img]Ein Bild im ToolTip</html>");

oder:

String text = "<html>[img]"+this.getClass().getResource("img/bild1.gif")+"[/img]Ein Bild im ToolTip</html>";
radioButton1.setToolTipText(text);
```
Komisch?


----------



## Roar (3. Nov 2005)

nein nicht komisch, das liegt nicht am formdesigner, das liegt an dir.
das bild kann nicht geladen werden, weil java nicht weiß wo es suchen soll. 
entweder du machst es so wie ich vorgeschlagen hab oder du sparst dir den fusch und lädst das bild direkt.


----------



## Vril (3. Nov 2005)

Hm,
also ich hab jetzt mal folgendes gemacht, so gehts, sprich das Bild wird angezeigt:

```
radioButton9.setToolTipText("<html>[img]"+this.getClass().getResource("img/bombenfest.gif")+"[/img]"+bundle.getString("radioButton9.toolTipText"));
```
Ist aber noch nicht die optimale Lösung, da ich ja das Bild auch aus einer Resource laden will, bzw. im JFormDesigner so einstellen möchte das ich es im Source nicht mehr extra reinbasteln muss. Der JFormDesigner überschreibt mir es ja sonst bei jedem neuen Generate Code.

Versteh das immer noch nicht mit den String.... Warum geht es so, und mit ResourceBundle nicht? Anscheinend
wird wohl der komplette Inhalt des ResourceBundle bzw. mit bundle.getString nur einer kompletter String übernommen...wobei ja aber das html auch funktioniert???


----------



## Roar (3. Nov 2005)

Vril hat gesagt.:
			
		

> Ist aber noch nicht die optimale Lösung, da ich ja das Bild auch aus einer Resource laden will, bzw. im JFormDesigner so einstellen möchte das ich es im Source nicht mehr extra reinbasteln muss. Der JFormDesigner überschreibt mir es ja sonst bei jedem neuen Generate Code.


dann lad den pfad zum bild halt auch aus einer properties.



> Versteh das immer noch nicht mit den String.... Warum geht es so, und mit ResourceBundle nicht?



ja soll java denn hellsehen von wo es das bild laden soll oder wie :? ?


----------



## Bleiglanz (3. Nov 2005)

```
<html>[img]"+this.getClass().getResource("img/bild1.gif")+"[/img]Ein Bild im ToolTip</html>";
```
versteh ich ehrlich gesagt überhaupt nicht warum das geht?

was ergibt denn

```
this.getClass().getResource("img/bild1.gif").toString()
```
in dem Fall


----------



## Vril (3. Nov 2005)

@Bleiglanz

Also das erste ermöglicht mir einen ToolTipText zu formatieren (html) und ein Bild darin anzuzeigen. Wenn ich diesen Code dem ToolTipText so im Quelltext übergebe wird auch alles wie gewünscht angezeigt.

Lege ich das ganze aber in einem ResourceBundle ab, wird nur der Text dargestellt (wie im html beschrieben), jedoch kommt für das Bild ein broken image. Das ist mein Problem.

Das mit to.String() klappt leider auch nicht....  :cry:


----------



## Roar (3. Nov 2005)

Bleiglanz hat gesagt.:
			
		

> was ergibt denn
> 
> ```
> this.getClass().getResource("img/bild1.gif").toString()
> ...



das ergibt file:///C:/d/bla/blupp/blonk/package/img/bild1.gif

edit: und darum funktioniert das auch.
mit "img/bild1.gif" weiß der htmlrenderer nunmal nix anzufangen :x


----------



## Vril (3. Nov 2005)

Hm, also schon komisch:


> mit "img/bild1.gif" weiß der htmlrenderer nunmal nix anzufangen


Warum gehts dann so?

```
String tooltip = "<html>[img]"+this.getClass().getResource("img/bombenfest.gif")+"[/img]Sehr schön</html>"; 
Start.setToolTipText(tooltip);
```
oder so:

```
Start.setToolTipText("<html>[img]"+this.getClass().getResource("img/bombenfest.gif")+"[/img]Hallo</html>";
```
 :bahnhof:


----------



## Roar (3. Nov 2005)

das hab ich doch da oben geschrieben!?
weil es  file:///C:/d/bla/blupp/blonk/package/img/bild1.gif  zurückgibt!


----------



## Vril (3. Nov 2005)

Du hast dich doch auf das hier bezogen:

this.getClass().getResource("img/bild1.gif").toString() 

???

Und meine Version die auch funktioniert, ist schon immer ohne das toString().

Na ja, ich geb wohl auf. bullzeye hats auch versucht und ist auf das gleiche Problem/Umstand wie ich gestossen.
Übergibt man den String dem ToolTipText direkt, funktioniert es, macht man es mit ResourceBundle klappt es nicht.
 :bahnhof: 

Auch so hat es nicht funktioniert:

```
#resource.propertie

radioButton9.toolTipText=<html>[img]"+this.getClass().getResource("img/bombenfest.gif").toString()+"[/img]text</html>
```


```
//MeineGui.java
...
radioButton9.setToolTipText(bundle.getString("radioButton9.toolTipText"));
...
```


----------



## Roar (3. Nov 2005)

Vril hat gesagt.:
			
		

> Du hast dich doch auf das hier bezogen:
> 
> this.getClass().getResource("img/bild1.gif").toString()
> 
> ...



 :autsch:  :autsch: 
excuse moi, dein code liefert natürlich NICHT file:///C:/d/bla/blupp/blonk/package/img/bild1.gif sondern new URL("file:///C:/d/bla/blupp/blonk/package/img/bild1.gif")

dass bei string verkettung natürlich toString() auf da sobjekt aufgerufen wird ist ja völlig uninteressant  :bahnhof:



> Übergibt man den String dem ToolTipText direkt, funktioniert es, macht man es mit ResourceBundle klappt es nicht.


nochmal! das hat nichts mit dem ResourceBundle zu tun! bei den beiden verschiedenen verisonen schriebst du nunmal verschiedene pfade in das src attribut. ob du nun den pfad aus einem resourcebundle lädst oder sonstwoher.

außerdem hab ich dir schon gestern ne funktinoierende lösung gegeben.


----------



## Vril (3. Nov 2005)

Bezüglich deiner Lösung bin ich dir ja auch sehr dankbar. Aber wie du siehst
such ich halt noch nach einer einfachen Lösung. Und ich checks einfach nicht,
zum Glück bin ich da nicht mehr allein, warum es bei der direkten String
übergabe klappt und anders eben nicht......  :cry:


----------



## Roar (3. Nov 2005)

Vril hat gesagt.:
			
		

> zum Glück bin ich da nicht mehr allein, warum es bei der direkten String
> übergabe klappt und anders eben nicht......  :cry:



verdammt, es klappt nicht weil du bei den beiden verschiedenen verisonen zwei verschiedene strings dem label als tooltip setzt!


----------



## Vril (4. Nov 2005)

Dank Beni hab ich es jetzt auch begriffen:


> Wenn das "this.getClass().getResource("img/bombenfest.gif")" nur als Text dasteht, wird es nie ausgeführt. Wenn du das direkt in den Code schreibst, wird aus diesem Stücklein die URL berechnet. wenn es in dem Bundle steht, ist es nur Text und wird direkt dem Tooltip übergeben.


----------

