Biesterfeld: Per HTML auf Datei in Jar-Archiv zugreifen

Beitrag lesen

Hej,

Jedoch will ich auf die Datei in HTML-Code zugreifen und zwar HTML-Code innerhalb des GUIs (JEditorPane). Und da wird es kritisch, da ich nicht weiß, welchen Pfad ich in <img src="???"> setzen soll.

Dazu kann ich dir nichts genaues sagen, weil ich die html-Implementierung von Java nicht genau kenne. Aber vielleicht hilft dir dieses Sun Tutorial weiter:
http://java.sun.com/developer/JDCTechTips/2003/tt1210.html#2

Ganz unten ist beschrieben wie du CSS in das html einbinden kannst, nämlich indem du dir nicht die Ressource als Stream zurückgeben lässt, sondern eine java.net.URL, die darauf verweist. Dazu greifst du über die Klasse die das html verarbeitet statisch darauf zu:

MeinJEditorPane.class.getResource( meinBild.png )

Sollte das wider erwarten nicht funktionieren, könntest du immernoch überlegen

* die Grafik entweder per getResourceAsStream() aus dem Jar rauszuholen und in ein temporäres Verzeichnis zu speichern, allerdings hast du wahrscheinlich das gleiche Problem was den Zugriff angeht;

* oder du könntest die Grafik vielleicht auch als Inline-Grafik einbinden, es kann aber sein, dass das nicht unterstützt wird.

In jedem Fall solltest du dir sehr gut überlegen, ob das was du vorhast überhaupt sinnvoll ist. Ich persönlich finde es ziemlich quick and dirty zu extensiv html in den Swing Klassen einzusetzen. Du verlierst ziemlich schnell den Überblick und hast keine saubere Trennung zwischen Programm- und Darstellungslogik mehr. Aber das hängt auch von dem ab, was du eigentlich vor hast, ich wollte es nur zu bedenken geben.

Beste Grüße
Biesterfeld

--
Art.1: Et es wie et es
Art.2: Et kütt wie et kütt
Art.3: Et hätt noch immer jot jejange
Das Kölsche Grundgesetz