2009-09-21 1 views
7

Можно создать дубликат:
Is there a way to embed a browser in Java?Вставить в браузере Java на основе настольных приложений

Как я могу встроить браузер в настольное приложение на базе Java? Могу ли я общаться со встроенным браузером напрямую (не через localhost) ... например, загружать html-текст, захватывать события onclick, получать значения формы?

Благодаря

+0

Вы хотите, чтобы встроенный браузер был встроен или вы хотите программно перемещаться по HTML-страницам? – skaffman

+0

Может захотеть проверить https://github.com/rogerwang/node-webkit – jrhicks

ответ

6

чек из Затмения, он имеет встроенный браузер, который настраивается пользователем (они поддерживают несколько браузеров).

Возможно, вы можете встроить свой браузер, даже если вы используете приложение AWT с использованием AWT_SWT-моста.

это article может помочь вам приступить к работе.

+0

Есть ли отдельная версия этого? –

3

Вы можете построить очень примитивный браузер, используя JEditorPane. Вы можете слушать Hyperlink событий, но javascript или получение значений формы невозможно.

6

Панель Swing JEditor может отображать HTML.

Проверить http://www.apl.jhu.edu/~hall/java/Swing-Tutorial/Swing-Tutorial-JEditorPane.html

Также здесь в SO более подробный ответ на эту тему:

https://stackoverflow.com/questions/48249/java-embedding-a-web-browser-pane

+0

Ссылка SO предлагает JWebPane, но вы предлагаете JEditor. Я не думаю, что они одно и то же. Спасибо за ссылки, я буду исследовать оба. – jrhicks

2

Lobo - это веб-браузер Java, который может быть встроен в приложения Swing.

Он поддерживает HTML 4, CSS 2 и Javascript, который является более современным по сравнению с JEditorPane, который поддерживает только HTML 3.2.

Для некоторых идей о том, что возможно, Lobo Browser API documentation должен предоставить представление о том, что можно сделать с Лобо. В частности, org.lobobrowser.gui имеет класс BrowserPanel, который является подклассом JPanel, поэтому он может быть непосредственно встроен в приложения Swing.

Например, метод BrowserPanel.navigate может использоваться для перехода на веб-страницы, и существует много Listener s, которые могут захватывать события, которые происходят в браузере.

+0

Оригинальный проект Lobo, кажется, мертв. Вот вилка: https://sourceforge.net/projects/loboevolution/ – Stefan

1

Вы можете попробовать JxBrowser библиотека: http://www.teamdev.com/jxbrowser/features/

Например, чтобы встроить Mozilla браузер в приложение приложений Java Swing вам просто нужно сделать следующий код:

Browser browser = BrowserFactory.createBrowser(BrowserType.Mozilla); 

JFrame frame = new JFrame(); 

frame.add(browser.getComponent(), BorderLayout.CENTER); 
frame.setSize(700, 500); 
frame.setLocationRelativeTo(null); 
frame.setVisible(true); 

browser.navigate("http://www.google.com"); 
+2

это не является бесплатным:/ – mikakun

+0

FYI: для проектов с открытым исходным кодом это бесплатно. – Vladimir

+0

Обновление: начиная с версии 4.0 JxBrowser интегрируется с движком Chromium только на всех платформах, включая Mac OS X, Linux и Windows. – Vladimir