



Я давно не пробовал этого, но быстрый поиск в Google показывает некоторые возможности:
Вы пытаетесь сделать это в апплете или приложении? Если это приложение (или подписанный апплет), вы потенциально можете создать экземпляр IE или Firefox в своем приложении. Webrenderer действует как оболочка Swing для этого.
Swing имеет встроенный компонент под названием Базовый HTML. Я никогда им не пользовался, но думаю, что для базовых вещей этого должно хватить.
Многие элементы управления Swing (например, JLabel) могут отображать базовое содержимое HTML. JEditorPane можно использовать для отображения HTML-страниц. Однако эти элементы управления ограничены поддержкой HTML 3.2.
Для более богатого опыта я бы использовал Компоненты интеграции JDesktop.
JDIC provides Java applications with access to functionalities and facilities provided by the native desktop. It consists of a collection of Java packages and tools. JDIC supports a variety of features such as embedding the native browser, launching the desktop applications, creating tray icons on the desktop, registering file type associations, creating JNLP installer packages, etc.
Это исторически было основным слабым местом Java, IMO. Существует множество способов отображения ограниченной разметки, но лишь немногие из них предлагают полнофункциональные возможности HTML. Ранее упомянутый компонент JDIC является одним из вариантов, однако он считается «тяжеловесным» компонентом и поэтому не всегда хорошо интегрируется с приложениями Swing.
Однако я надеюсь, что новый проект JWebPane на основе Webkit предоставит более продвинутые возможности без всех проблем, с которыми нам приходилось иметь дело в прошлом. И, конечно же, есть несколько коммерческих вариантов (например, IceBrowser).
На днях наткнулся на веб-браузер java Лобо.
Lobo is being actively developed with the aim to fully support HTML 4, Javascript and CSS2.
У меня нет опыта работы с этим, но подумал, что это может подойти вам.
Хорошее чистое Java-решение - JWebEngine. Он очень хорошо отображает HTML 4.
Я только что использовал SwingBox для отображения довольно простой HTML-страницы с хорошими результатами.
Проект включает простое демонстрационное приложение, которое сравнивает его компонент BrowserPane с JEditorPane, показывая гораздо лучший результат на сложных страницах (но все же не сравнимый с современным веб-браузером).
Единственная проблема, с которой я столкнулся, - это нежелательные полосы прокрутки от оболочки JScrollPane. У демонстрационного приложения похоже та же проблема. Я не могу сказать, где возникла проблема. Пользуюсь версией 1.0.
Вот фрагмент кода, показывающий, насколько просто использовать компонент:
BrowserPane browserPane = new BrowserPane();
JScrollPane scrollPane = new JScrollPane(browserPane);
someContainer.add(scrollPane);
browserPane.setText("<html><b>Some HTML here</b></html>");
// or...
browserPane.setPage(new URL("http://en.wikipedia.org"));
Его коммерческая лицензия составляет около 2000 долларов США.