JLabel mit HTML-Bild

dadom110

Erfahrenes Mitglied
Guten Tag Zusammen,

wie ist es möglich Bilder per HTML Code auf ein Label zu bekommen, oder geht das nicht? Konkret versuche ich anhand eines DefaultTableCellRenderer (verwende ja zur Darstellung ein JLabel) ein Bild in einer Tabelle an zu zeigen. Aus gründen der Anordnung von Text und Bild, wollteich das ganze per HTML machen:

Code:
 @Override
	protected void setValue(Object value) {
		setHorizontalAlignment(DefaultTableCellRenderer.CENTER);
		if (value != null) {
			DFile file = (DFile) value;

			String html="<html> <center><img src=\" " + "word.jpg" + "\"> <br>"
			+ file.get20erString() + "</center> </html>";
			setText(html);
		} else {
			setText(null);
			setIcon(null);
		}
	}

als schluss endliches HTML Statement das auf dem Label erscheint spuckt das Programm:

<html> <center><img src="word.jpg"> <br>test</center> </html>

Bild ist vorhanden (wenn ich das ganze per setIcon auf ein Label lege, funktioniert ist)

Statt meines Bildes bekomm ich dann so was (Platzhaler?) :) :
http://img144.imageshack.us/my.php?image=errorxp8.jpg



vielen dank schon mal
Dom
 
Moin!
Ich schätze mal, das liegt daran, das die URL zu dem Bild falsch ist...
Probiere mal sowas wie:
Code:
label.setText("<html><img src=file:/C:/1.gif> </html>");
bzw.
label.setText("<html><img src=file:/"+System.getProperty("user.dir")+"/1.gif> </html>");
Das klappt bei mir tadellos

*grüssle*
MeinerEiner
 
Suppi ! Das wars, meine HTML Kenntnisse sind etwas eingerostet.. mein Programm erzeugt nun folgenden HTML String mit dem es geht:

Code:
<html> <center><img src=file:/C:\eclipseWTP\workspace\DFileExplorer\ressources\word.jpg> <br>test</center> </html>

ABER: funktioniert das ganze auch wenn ich nachher ein JAR daraus packe? Wollte eigentlich alle Dateien in einem JAR haben und nicht so viele einzelne Dateien rum liegen haben...aber dann sollte meine Adressierung ja problematisch werden, oder sehe ich das falsch? Den Pfad ermittel ich zur Zeit so:

Code:
private static final File WORD = new File("ressources/word.jpg");
private static final File EXCEL = new File("ressources/excel.jpg");

und dann lass ich mit den absoluten Pfad ausgeben. Allerdings kann ich es gerade nicht testen, weil mein Eclipse beim Export die Bilddateien nicht mitnimmt? Jemand dafür auch eine Idee?

Danke schon mal
Dom
 
Das geht genauso.. du brauchst nur den entsprechenden Pfad..
Ungefähr so:
Code:
URL url = this.getClass().getResource("1.gif"); // <- hier halt den korrekten relativen Pfad zu dem Bild 
label.setText("<html><img src="+url.toString()+"> </html>");

*grüssle*
MeinerEiner
 
HuHu...

gut gut, wenn du mir jetzt noch sagst wie ich mein Programm komplett in EIN Jar bekomme, dann kröne ich Dich zu meinem König :) .

Mit einem "normalen" Eclipse export, bekomme ich mein externes Jar nicht mit,das müsste ich dann "dazu" legen in dem selben Ordner... finde ich unschön.

Hab ein Plugin, "Far Jar" oder so, das packt mir das externe Jar schön zu meinem Programm dazu, allerdings habe ich einen seperaten Ordner "ressources" in dem alle Bilder liegen. Nun hab ich dem Plugin das schon untergejubelt, allerdings erzeugt er mit in dem Jar keinen Ordner "ressources" sondern packt die da einfach ins oberste Verzeichniss (wo mein Progamm sie nicht finden kann :/ )

Danke schon mal
Dom
 
Mit einem "normalen" Eclipse export, bekomme ich mein externes Jar nicht mit,das müsste ich dann "dazu" legen in dem selben Ordner... finde ich unschön.
Ich finde das eigentlich ganz schön. Denn wenn sich was an dem externen Jar ändert, muss u.U. nur dieses ausgetauscht werden, anstatt das gesamte Programm. Ist also so sehr viel sinnvoller...

Wie du das komplett alles wie gewünscht in ein Archiv bekommst, kann ich dir nicht sagen. Dazu beschäftige ich mich zu wenig mit Eclipse /FatJar. Wenn du weiterhin darauf bestehst, kann dir das vielleicht jemand anders sagen...
Solang bleib ich der ungekrönte König:rolleyes:

*grüssle*
MeinerEiner
 
Zurück