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);
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.
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.
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".