# Grafiken in JLabel mittels html



## Braatbecker (10. Jan 2010)

Hi,

in meinem Programm möchte ich innerhalb eines JLabels auf meiner GUI, unter anderem mehrere Bilder per html positionieren.
Ich kann bereits meine "<table>" mit Inhalt anzeigen, allerdings wird keines der lokal gespeicherten Bilder angezeigt. Stattdessen sieht man nur einen Platzhalter.

Ich verwende:

```
<html><img src="player.jpg"></html>
```

Es funktioniert:

```
<html><img src="http://www.blablub.bla/player.jpg"></html>
```

Ich kann also Bilder aus dem Internet anzeigen lassen, aber keine lokal gespeicherten. Wenn ich im selben Verzeichnis eine html-Datei mit ersterem Code erzeuge, wird dort das Bild ebenfalls angezeigt. Lediglich mein Label kann es nicht darstellen.


ich hoffe, mir kann jemand bei meinem Problem helfen.

LG,
Braat


----------



## dayaftereh (10. Jan 2010)

Hey du musst absolute Pfade angeben! 

```
<html><img src="C:\pfad\zum\bild\player.jpg"></html>
```

Du kannst dir das Verzeichniss in dem deine Programm ausgeführt wird, als String hollen: 
	
	
	
	





```
System.getProperty("user.dir");
```
um dir dan dein absoluten Pfad zusammen zu bauen!


----------



## Braatbecker (11. Jan 2010)

Vielen Dank,

dein Tip hat funktioniert  Lediglich bis ich darauf gekommen bin, dass auch noch ein file:/// davor muss, hat noch eine Weile gedauert ^^ Diesen letzten Tip hat mir Firefox gegeben.

lg


----------



## Michael... (11. Jan 2010)

Sich den Pfad zusammenzubasteln ist - abhängig vom Speicherort - meist überflüssig

```
new JLabel("<html><img src=\"" + MeineKlasse.class.getResource("player.jpg") + "\"></html>")
```
In dem obigen Bsp. muss player.jpg im gleichen Verzeichnis/ Package wie MeineKlasse.class liegen.


----------



## Braatbecker (11. Jan 2010)

Auch das funktioniert.  Danke für diese weitere Möglichkeit. Das werde ich mir merken. Das Problem ist nur, dass ich meine zahlreichen Texturen separat speichern möchte. Von daher nutzt mir diese Lösung in diesem speziellen Fall leider nicht.


----------



## dayaftereh (11. Jan 2010)

Hey, 
Ich würde das ganze vieleicht so machen:

```
public static void main(String[] args) {
		String path = getAbsolutPath("/player.jpg");

		JLabel lbl = new JLabel("<html><img src=\"" + path + "\"></html>");
	}

	public static String getAbsolutPath(String path) {
		File file = new File(System.getProperty("user.dir") + path);

		if (file == null || file.exists() == false || file.canRead() == false) {
			/* hier eine Fehlermeldung */
		}

		return file.toURI().toString();
	}
```
Kannst ja mal versuche ob das Klappt!


----------

