Próbuję wyświetlić obraz wbudowany w Java JEditorPane. Poniższy kod wykorzystuje treść HTML, która poprawnie wyświetla obraz w przeglądarce Firefox, ale nie w JEditorPane. Jakieś pomysły, dlaczego? Dzięki.JEditorPane z obrazem w wierszu
import javax.swing.*;
import java.awt.*;
public class InlineImage {
public InlineImage() {
JFrame frame=new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JEditorPane edit=new JEditorPane();
frame.getContentPane().add(edit);
edit.setContentType("text/html");
String html = "<html><body>Local image<br><img src=\"data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAyCAYAAACqNX6+AAACeklEQVR42u1bHZBCURgNgiBYCINgIVhYCIKFhSBYCIIgCIKFxSBoZpsJgjAIgmAhCIIgCIKFIAiChSAIF4IgCL7d82abnWl69Xq9+7r1Dhyp93PfOff7ufd+n8/nEyF0AkmgIAQFoSDEjQgSCn1LPD6SbPZDSqWKNBqv0m5nZDh8lsnkUebziIH1OiC/d+wF/tteN50+GPfiGbVaQcrld8nnm8Y78C4K8odAYC3R6Jfkci2pVosGaYtFWDYbvynRKgDx8G4Ij7FgTBjbzQuC2ZhOd4wZCgIOzfBLYysSxooxh8OL2xAEH4KPGo3irs98pwF3CZcXi42vS5CtCPiAaxfBDLPZvRQKNUWW49CDEomBdDrpmxXBDN1uSlKprvj9m8sLgkHAx47HMU+JYObSkBmenxDYvDGTaRum63UhdoFUG9maa4IgW4KZkvzD6PVebMaYEy6GSS6XdyTcIlaroA1rsRgr6vU3zwVsp4BFZzC4ckYQBCmYH4k9D4NBwmLAP2IZFMNZUY6nxwf+rFRKJNJhYLVvSxAs9Bgz1ADcniQIzIprDLVbL+aua8+PyWSfxCkGOLYsSKuVI2mKAY4tC4LlP0lTv8ViWRAS5g4oyLUKQpelmctiUNcsqDPt1Szt5cJQs4Uht0402zrh5qKGm4tb19XvJ0mkq2ciPKC6ngOq3SNcEms/xXXsCJdFDhoWOeyWAdGFWSsDikTm7hXKwVq4VjEvlLNfWnpmKSkqGFlK+l9Kaj1WuFBs7cWKRrgmbYqtvdyOUCxW9W5HOCQOXBobdtjSxpY2J5o+L0W+55o+7bZFN5t5JW3RT0+fbIsmKAgFISgIBSHU4QdCoO0W7Xd4AwAAAABJRU5ErkJggg==\"></body></html>";
edit.setText(html);
frame.setSize(500,300);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public static void main(String[] args) {new InlineImage();}
}
* "Sprytna rzecz tutaj" * Zobaczyłem 4 rzeczy, które sprawiły, że pomyślałem - Wow, to sprytnie! Moje "przedmioty do nauki" danego dnia. :) –
Dziękuję za szczegółową odpowiedź! Spróbuję tego. – Mike
Pracował jak urok! Wielkie dzięki. Zbadanie twojej odpowiedzi postawiło jedno pytanie. Znalazłem kilka odniesień do faktu, że właściwość java.protocol.handler.pkgs jest odczytywana przez maszynę JVM podczas uruchamiania, więc procedury obsługi muszą być dostarczone w wierszu poleceń (na przykład java -Djava.protocol.handler.pkgs = xxxxxx). Ale po prostu wywołałem test1.data.Handler.install() w mojej metodzie main() i zadziałało. Czy zachowanie zostało zmienione w nowszych wersjach Java, czy też po prostu źle się z nim przeczytałem? – Mike