Re: JEditorPane, html, and image
On 2009-03-25 14:47, Albert wrote:
Your html file is in "/ressources/" (in the jar), so if the html refer
to the image as "image/bar.jpg" (in <img> tag), the jpg file must be in
"/ressources/image/bar.jpg" (in the jar) if you want it to work.
Thanks for your reply. Both the bar.jpg and foo.html are in resources.
But in order to make it easier for someone to try my code I've rewritten
my test program so that the html is a string instead, here it is:
package gui;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.text.html.HTMLDocument;
import javax.swing.text.html.HTMLEditorKit;
public class ATest {
public static void main(String[] args) {
new ATest();
}
private ATest() {
final JFrame frame = new JFrame("atest");
frame.getContentPane().add(createHTMLPane());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(800, 600);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
private JScrollPane createHTMLPane() {
HTMLEditorKit htmlEditorKit = new HTMLEditorKit();
HTMLDocument htmlDocument =
(HTMLDocument)htmlEditorKit.createDefaultDocument();
try {
htmlDocument.setBase(ATest.class.getResource("/resources"));
}
catch (Throwable t) {
System.err.println("Exception " + t + ": " + t.getMessage());
}
JEditorPane editor = new JEditorPane();
editor.setEditable(false);
editor.setEditorKit(htmlEditorKit);
editor.setText(htmlString);
return new JScrollPane(editor);
}
private String htmlString = "<!DOCTYPE html SYSTEM
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"+
"<html xmlns=\"http://www.w3.org/1999/xhtml\">\n"+
" <head><title></title></head>\n"+
" <body>\n"+
" <center>\n"+
" <p>\n"+
" <img src=\"bar.jpg\" alt=\"aaa\"/>\n"+
" </p>\n"+
" </center>\n"+
" <center>\n"+
" <p>\n"+
" <img src=\"/resources/bar.jpg\" alt=\"bbb\"/>\n"+
" </p>\n"+
" </center>\n"+
" </body>\n"+
"</html>";
}
I've validated the html using the W3C validator and it passes. As you
can see I am trying two different paths to the same image in the html,
but neither works (I don't see any images). Tried both from within
Eclipse and running the exported jarfile.
Where am I going wrong?
- Fencer