Show HTML file in JEditorPane

2020-02-01 23:51发布

问题:

I am working on a Swing application in which I have to show HTML files.

I am using JEditorPane control for it. It is showing the content of HTML file but not in the same format as originally in the actual HTML file.

JEditorPane does not support the object element. Rather than loading the object file its just showing ?.

Is there any other inbuilt control in Swing to browse the HTML file rather than JEditorPane?

I am using the following code:

JEditorPane HtmlPane= new JEditorPane();
File file1= new File("path of the file");
HtmlPane.setContentType("text/html");
HtmlPane.setEditable(false);
HtmlPane.setPage(file1.toURI().toURL());
JScrollPane jsp=new JScrollPane(HtmlPane);

回答1:

Your best bet for more advanced HTML rendering in core Java is to use the JavaFX based WebView component as described in Adding HTML Content to JavaFX Applications. It supports HTML5, but I've not actually played with it, so I cannot say how well it renders HTML.

Note that Java FX is effectively an alternative to Swing, but AFAIU Java FX components can be embedded in Swing GUIs.



回答2:

Support for HTML in Swing Components is limited to 3.2, predating the <object> tag. You might be able to use a HyperlinkListener, illustrated here, in conjunction with Desktop#browse(). See also this example.



回答3:

To render html content from local file, the local file's extension must be ".html". JEditor Pane will render "content.html" but will not render "content.txt".