Показать HTML-файл в JEditorPane

Я работаю над приложением Swing, в котором мне нужно показывать файлы HTML.

Я использую для этого элемент управления JEditorPane. Он показывает содержимое HTML-файла, но не в том же формате, что и исходный HTML-файл.

JEditorPane не поддерживает элемент object. Вместо того, чтобы загружать объектный файл, он просто показывает ?.

Есть ли в Swing какой-либо другой встроенный элемент управления для просмотра HTML-файла, а не JEditorPane?

Я использую следующий код:

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

person adesh    schedule 06.11.2012    source источник


Ответы (3)


Лучше всего для более продвинутого рендеринга HTML в ядре Java использовать компонент WebView на основе JavaFX, как описано в Добавление содержимого HTML в приложения JavaFX. Он поддерживает HTML5, но я на самом деле не играл с ним, поэтому не могу сказать, насколько хорошо он отображает HTML.

Обратите внимание, что Java FX фактически является альтернативой Swing, но компоненты AFAIU Java FX могут быть встроены в графические интерфейсы Swing.

person Andrew Thompson    schedule 06.11.2012
comment
Пример использования JFXPanel показан здесь. - person trashgod; 15.06.2016

Поддержка HTML в компонентах Swing ограничен 3.2, предшествующий тегу <object>. Вы можете использовать HyperlinkListener, проиллюстрированный здесь, в сочетании с Desktop#browse() . См. также этот пример.

person trashgod    schedule 06.11.2012
comment
+1, но с тем количеством проблем, с которыми я столкнулся, втиснув элемент апплета в JEditorPane вместе с тем, что он обычно делает для тонко стилизованного HTML, я чувствую, что на самом деле ничего нельзя сделать, чтобы превратить его в серьезный компонент браузера. :( - person Andrew Thompson; 06.11.2012
comment
› Добавление HTML-контента в JavaFX›Можно начать примерно здесь: Добавление HTML-контента для JavaFX, будут проблемы, поскольку API улучшился с 2014. Основы почти всегда остаются сосредоточенными. Не так ли?!! - person will; 14.06.2016
comment
@will: Пример использования JFXPanel показан здесь. - person trashgod; 15.06.2016

Для отображения html-контента из локального файла расширение локального файла должно быть «.html». JEditor Pane будет отображать «content.html», но не будет отображать «content.txt».

person Anis Cherid    schedule 08.06.2014
comment
HTML/XML — это байтовый поток или MIME-тип. Никакого волшебства file-type не требуется/ - person will; 14.06.2016