Bild in JEditorPane

VPChief

Bekanntes Mitglied
Hallo,

ist es eigentlich möglich ein Bild aus der Jar in eine JEditorPane einzufügen?
Auf Google finde ich jetzt nicht so direkt etwas das funktioniert.
 
K

kneitzel

Gast
Was hast du denn ausprobiert? Ein Versuch könnte sein, dass man eine URI vom Classloader bekommt (Also z.B. per getClass().getResource) um so dann eine URL (toURL Aufruf) zu bekommen, die man mal probieren könnte. Aber ich weiss nicht, ob der JEditorPane die richtig laden kann bzw. ob da eine URL bei raus kommt oder eine Exception geworfen wird. Aber das ist ja ein schneller Test so man nicht wie ich am Handy sitzt....

Die zweite Möglichkeit wäre, das Bild selbst zu laden und dann base64 encoded in das html einzufügen. Das sollte aus meiner Sicht funktionieren.

Das wäre so, was ich probieren würde in der Reihenfolge.
 

VPChief

Bekanntes Mitglied
Was hast du denn ausprobiert? Ein Versuch könnte sein, dass man eine URI vom Classloader bekommt (Also z.B. per getClass().getResource) um so dann eine URL (toURL Aufruf) zu bekommen, die man mal probieren könnte. Aber ich weiss nicht, ob der JEditorPane die richtig laden kann bzw. ob da eine URL bei raus kommt oder eine Exception geworfen wird. Aber das ist ja ein schneller Test so man nicht wie ich am Handy sitzt....
Das habe ich schon versucht
Die zweite Möglichkeit wäre, das Bild selbst zu laden und dann base64 encoded in das html einzufügen. Das sollte aus meiner Sicht funktionieren.
kannst du mir das genauer erklären...
 
K

kneitzel

Gast
Den Link zu SelfHTML habe ich dir ja schon gegeben. Der erläutert, wie es aussieht. Die Base64 Kodierung solltest du bekommen, indem Du
a) das Bild in ein byte Array liest
b) die Bytes dann Base64 kodierst: Base64.getEncoder().encodeToString(bytes); sollte das schon machen ...

Aber das habe ich so selbst noch nicht ausprobiert, aber wie gesagt: Das wäre der zweite Versuch, den ich starten würde ...
 

VPChief

Bekanntes Mitglied
Was hast du denn ausprobiert? Ein Versuch könnte sein, dass man eine URI vom Classloader bekommt (Also z.B. per getClass().getResource) um so dann eine URL (toURL Aufruf) zu bekommen, die man mal probieren könnte. Aber ich weiss nicht, ob der JEditorPane die richtig laden kann bzw. ob da eine URL bei raus kommt oder eine Exception geworfen wird. Aber das ist ja ein schneller Test so man nicht wie ich am Handy sitzt....
Ich habe das jetzt irgendwie gebastelt, aber naja...
Java:
File file = null;
            file = new File("" + (InputStream) Programm6.class.getResourceAsStream("/Neuer Ordner/picture.html"));
             URL url = null;
            try {
                url = new URL("file//"+ file);
            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
  
             System.out.println(url);
          
             try {
                url = file.toURI().toURL();
            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
             System.out.println(url);
            editorPane.setPage(url);
        }

Den Pfad den er mir ausgibt ist:
file:/C:/Users/Unkenttlichgemachteruser/eclipse-workspace/forum/java.io.BufferedInputStream@7d907bac

Was die EditorPane ausgibt ist Page not Found, was ja irgendwie klar ist.:D

kann man das dann irgendwie korrigieren?
 
K

kneitzel

Gast
Das ist beide Ideen wild durcheinander gemixt .... Und das mit Dingen, die keinen Sinn machen ...

Wenn du über den InputStream gehst, dann musst du den nutzen um das Bild in ein byte Array zu laden. Dieses könnte man dann Base64 kodiert nutzen.

Der Weg URI -> URL müsste natürlich die URI der Datei im jar holen (also getResource statt getResourceAsStream). Da bekommst du dann direkt die URI auf der ein toURL aufgerufen werden könnte...

Die Korrektur wäre also, es so zu implementieren, wie es beschrieben wurde bzw. sich bei Problemen die notwendigen Grundlagen anzueignen... bei deinem Code wäre jede Korrektur wohl: löschen des Codes und richtig machen ... ok, die paar Zeichen mit dem getResourceAsStream kann man lassen, aber ohne den Rest der Zeile drumherum ... Oder wenn nicht der Base64 Weg genommen werden soll, dann darf alles weg bis auf die letzte Zeile wenn man das Laden einer URL testen will und nicht ein html mit entsprechendem img Tag erzeugt ...
 
K

kneitzel

Gast
Ich habe mir jetzt einmal die Zeit genommen und es selbst etwas durchgetestet. Das Ergebnis ist relativ deutlich:
a) getResource liefert bereits eine URL und keine URI (Schande auf mein Haupt!) - daher spart man sich den toURL Aufruf.
b) JEditorPane kann problemlos URL laden, die eine Datei innerhalb des jar Files beschreibt
c) Deine Idee, die URL direkt an die JEditorPane zu geben bringt nichts, denn das Bild wird als Test gelesen und dann entsprechend angezeigt ...
d) daher: html code erzeugen, der ein <img src="...."/> hat (und da dann natürlich statt der ... die URL, die getResource liefert) und schon wird das Bild korrekt angezeigt.

Die base64 Variante funktioniert bei mir jedoch nicht. Das html, welches ich generiere, wird von z.B. Chrome korrekt angezeigt, aber JEditorPane zeigt das Bild leider nicht an. Das hat mich etwas überrascht, denn ich hatte eher ein umgekehrtes Ergebnis erwartet. Aber die erste Variante funktioniert und das ist aus meiner Sicht eh der deutlich bessere Weg!
 
K

kneitzel

Gast
Also wie beschrieben:
  1. URL per getResource holen (Meine Klasse heisst JEditorPaneTest - nicht dass du dadrüber stolperst...)
  2. HTML aufbauen mit img src=url
  3. Der JEditorPane das als HTMl Code geben
Java:
URL url = JEditorPaneTest.class.getResource("/test.png");
String htmlCode = "<html><body><img src=\"" + url + "\" /></body></html>";
JEditorPane pane = new JEditorPane("text/html", htmlCode);
 

VPChief

Bekanntes Mitglied
Also wie beschrieben:
  1. URL per getResource holen (Meine Klasse heisst JEditorPaneTest - nicht dass du dadrüber stolperst...)
  2. HTML aufbauen mit img src=url
  3. Der JEditorPane das als HTMl Code geben
Java:
URL url = JEditorPaneTest.class.getResource("/test.png");
String htmlCode = "<html><body><img src=\"" + url + "\" /></body></html>";
JEditorPane pane = new JEditorPane("text/html", htmlCode);
danke, funktioniert, vielen dank:)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
B Bild per KeyListener drehen Java Basics - Anfänger-Themen 1
I Kamera anschließen / Bild machen / Live View / Externe Blitz Java Basics - Anfänger-Themen 19
I Innerhalb einem Bild ein Teil austauschen Java Basics - Anfänger-Themen 26
I Datei (Bild) Drucken und wie Druckeinstellung speichern? Java Basics - Anfänger-Themen 3
krgewb byte-Array, das ein Bild repräsentiert Java Basics - Anfänger-Themen 1
H Artefact mit Bild erzeugen Java Basics - Anfänger-Themen 11
R UML-Bild (Erkennung ob static o. nicht) Java Basics - Anfänger-Themen 18
J Bild auf Hintergrundbild zeichnen Java Basics - Anfänger-Themen 5
krgewb Bild itextpdf Java Basics - Anfänger-Themen 2
C Bild in executable JAR File mitgeben Java Basics - Anfänger-Themen 5
B Warum bekomme ich kein Bild. Java Basics - Anfänger-Themen 10
S Bild einfügen // NEU Java Basics - Anfänger-Themen 12
N Bild drehen Java Basics - Anfänger-Themen 3
S Ein Bild mit dynamischer Quelle neuzeichnen Java Basics - Anfänger-Themen 12
N GLOOP Bild nicht ansichtbar Java Basics - Anfänger-Themen 5
M Bild in JFrame Java Basics - Anfänger-Themen 1
B Signatur erstellen - Bild ist nur weiß Java Basics - Anfänger-Themen 0
CptK Interface Bild rotieren Java Basics - Anfänger-Themen 17
CptK Interface Bild rotieren Java Basics - Anfänger-Themen 1
Anica Processing Animation Bild-Position ändern Java Basics - Anfänger-Themen 9
CptK Interface Bild über Methode ändern funktioniert nicht Java Basics - Anfänger-Themen 4
CptK Interface Curser durch Bild ersetzen & MouseListner Java Basics - Anfänger-Themen 2
M jTextPane Bild anzeigen Java Basics - Anfänger-Themen 6
CptK Bild beim betätigen eines JButtons Java Basics - Anfänger-Themen 6
S Bild über JButton legen Java Basics - Anfänger-Themen 3
B Bild mit Schrift befüllen / Anpassung bei Wortlänge Java Basics - Anfänger-Themen 2
D Google maps bild mit marker versehen Java Basics - Anfänger-Themen 12
D ImageView mit einfarbigem Bild fuellen Java Basics - Anfänger-Themen 3
it_is_all Bild-Pfad wird gefunden, nicht aber Textdatei-Pfad Java Basics - Anfänger-Themen 8
M Einzelne Pixel in einem Bild auslesen und bearbeiten Java Basics - Anfänger-Themen 1
M Bild wird von JFrame nicht geladen Java Basics - Anfänger-Themen 12
J Bild in Button einsetzen Java Basics - Anfänger-Themen 6
S button kommt durch bild Java Basics - Anfänger-Themen 13
M Ein Bild durch Objekterzeugung zeichnen Java Basics - Anfänger-Themen 5
B Greenscreen (grüner Hintergrund ersetzen mit Bild) Java Basics - Anfänger-Themen 49
K Interface Kein Bild im .jar-File Java Basics - Anfänger-Themen 15
S Bild in Jar-File mit ImageIO Java Basics - Anfänger-Themen 50
S Bild einfügen Java Basics - Anfänger-Themen 16
binop Bild anzeigen lassen Java Basics - Anfänger-Themen 2
D Bild zu Text Java Basics - Anfänger-Themen 4
I HTML Code in Bild (transparent) konvertieren Java Basics - Anfänger-Themen 0
I Watermark erstellen mit HTML in Bild? Java Basics - Anfänger-Themen 7
D Classpath Bild kann in .jar nicht geladen werden Java Basics - Anfänger-Themen 2
Anfänger2011 Bild programmieren?! Java Basics - Anfänger-Themen 3
8 Eigenes Bild in email einfügen Java Basics - Anfänger-Themen 1
K JTable Bild einfügen Java Basics - Anfänger-Themen 1
L BufferdImage schwarzes Bild nach zusammenfügen zweier Bilder Java Basics - Anfänger-Themen 8
S Bild in JOptionPane Java Basics - Anfänger-Themen 1
C Abfrage nach einem Bild im Array Java Basics - Anfänger-Themen 9
J Umgebungsvariable Programmfenster zeigt kein Bild an Java Basics - Anfänger-Themen 1
J Bild loopen Java Basics - Anfänger-Themen 6
M JFrame Bild einfügen Java Basics - Anfänger-Themen 3
S Bild bei Kontakt ändern Java Basics - Anfänger-Themen 2
C Erste Schritte Bild holen und speichern Java Basics - Anfänger-Themen 1
D Bild in Frame einfügen Java Basics - Anfänger-Themen 11
D Bild im Applet anzeigen Java Basics - Anfänger-Themen 3
F Bild in ein Runnable Jar File packen (eclipse) Java Basics - Anfänger-Themen 2
M Java-Applet: Bild einbinden (getImage) Java Basics - Anfänger-Themen 0
J Ganzes Bild Java Basics - Anfänger-Themen 4
T GUI anstatt Bild schwarzes Rechteck gespeichert Java Basics - Anfänger-Themen 0
A Bild verschwindet! Wieso?? Java Basics - Anfänger-Themen 2
I Bild aus Bereich laden Java Basics - Anfänger-Themen 3
P Bild in JFrame Titelleiste Java Basics - Anfänger-Themen 7
Y Nach Bild-Upload wird Bild nicht angezeigt Java Basics - Anfänger-Themen 1
M Button mit Bild und Text Java Basics - Anfänger-Themen 2
M JSP-Einfaches Bild anzeigen Java Basics - Anfänger-Themen 4
C Bild ins Frame laden und Objekte drüber legen Java Basics - Anfänger-Themen 1
Sogomn Bild will sich nicht skalieren lassen Java Basics - Anfänger-Themen 1
P Ein Bild für GUI (Java-Editor) Java Basics - Anfänger-Themen 4
D Bild für ein paar Sekunden einblenden und wieder ausblenden Java Basics - Anfänger-Themen 1
E Bild per Verzeichnis/JFileChooser auf JPanel laden Java Basics - Anfänger-Themen 13
S Bild auf eine Position rotieren?! Java Basics - Anfänger-Themen 4
P Bild bearbeiten Java Basics - Anfänger-Themen 9
Z Datenmatrix in Bild verwandeln Java Basics - Anfänger-Themen 4
C Bild verschwinden lassen Java Basics - Anfänger-Themen 7
S Bild Icon aus ID3Tag auslesen Java Basics - Anfänger-Themen 4
E Bild vom FileChooser aus via ImageIcon in DB schreiben Java Basics - Anfänger-Themen 16
D Bild zum Panel hinzufügen Java Basics - Anfänger-Themen 8
C Greenfoot: Bei Tastendruck und best. Wert Bild ändern Java Basics - Anfänger-Themen 2
O Auflösung einer Bild-Datei bekommen ohne sie herunterzuladen?? Java Basics - Anfänger-Themen 7
L Bild-Datein "zuschneiden" Java Basics - Anfänger-Themen 11
O DeviantArt-Bild Konverter: Fehler.. Java Basics - Anfänger-Themen 16
K Transparents Bild laden -> Fehlermeldung Java Basics - Anfänger-Themen 6
M Bild einbinden Java Basics - Anfänger-Themen 7
2 Bild auf JApplet zeichnen Java Basics - Anfänger-Themen 18
T Bild laden Java Basics - Anfänger-Themen 7
R Bild in GUI Java Basics - Anfänger-Themen 11
D Eclipse Juno zeigt Bild nicht bei Run Java Basics - Anfänger-Themen 3
Kenan89 Bild mit jar öffnen Java Basics - Anfänger-Themen 4
S Problem bei Bewegung von einem Bild! Java Basics - Anfänger-Themen 2
J Bild mit transparenter Farbe Java Basics - Anfänger-Themen 10
N Erste Schritte Applet zeichnet Bild nicht Java Basics - Anfänger-Themen 10
J Bild auf JLabel wird nicht angezeigt Java Basics - Anfänger-Themen 11
J Bild einfügen Java Basics - Anfänger-Themen 3
T ASCII Art von Bild erstellen. Java Basics - Anfänger-Themen 32
E Bild OS-unabhängig einbinden mit URL Java Basics - Anfänger-Themen 4
A BufferedImage in Android einbinden - Bild spiegeln -wie? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben