在基于Java的桌面应用程序中嵌入浏览器

可能重复:
有没有办法在Java中嵌入浏览器?

如何在基于Java的桌面应用程序中嵌入浏览器? 我可以直接与嵌入式浏览器通信(而不是通过localhost)…例如加载html文本,捕获onclick事件,获取表单值?

谢谢

查看Eclipse,它有一个嵌入式浏览器,可由用户配置(它们支持多个浏览器)。

即使您使用AWT_SWT桥使用基于AWT的应用程序,也可以嵌入浏览器。

本文可能会帮助您入门。

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

您可以使用JEdi​​torPane构建一个非常原始的浏览器。 您可以收听超链接事件,但无法使用javascript或获取表单值。

Lobo是一个Java Web浏览器,可以嵌入到Swing应用程序中。

它支持HTML 4,CSS 2和Javascript,与仅支持HTML 3.2的JEditorPane相比,它更新。

对于有关可能性的一些想法, Lobo Browser API文档应该提供有关Lobo可以做什么的概念。 特别是, org.lobobrowser.gui有一个BrowserPanel类,它是JPanel的子类,因此可以直接嵌入到Swing应用程序中。

例如, BrowserPanel.navigate方法可用于跳转到网页,并且有许多Listener可以捕获浏览器中发生的事件。

您也可以尝试DJ Native Swing的JWebBrowser: http ://djproject.sourceforge.net/ns

您可以尝试使用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");