如何在基于Java的桌面应用程序中嵌入浏览器?我可以直接与嵌入式浏览器通信(而不是通过localhost)...例如加载html文本,捕获onclick事件,获取表单值?
由于
答案 0 :(得分: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
答案 1 :(得分:6)
即使您使用AWT_SWT网桥使用基于AWT的应用程序,也可以嵌入浏览器。
此article可能会帮助您开始使用。
答案 2 :(得分:3)
您可以使用JEditorPane构建一个非常原始的浏览器。您可以收听Hyperlink个事件,但无法使用javascript或获取表单值。
答案 3 :(得分:2)
Lobo是一个Java Web浏览器,可以嵌入到Swing应用程序中。
它支持HTML 4,CSS 2和Javascript,与仅支持HTML 3.2的JEditorPane
相比,它更新。
对于可能的一些想法,Lobo Browser API documentation应该提供一个关于Lobo可能做什么的想法。特别是,org.lobobrowser.gui
有BrowserPanel
类,它是JPanel
的子类,因此可以直接嵌入到Swing应用程序中。
例如,BrowserPanel.navigate
方法可用于跳转到网页,并且有许多Listener
可以捕获浏览器中发生的事件。
答案 4 :(得分:2)
你也可以尝试DJ Native Swing的JWebBrowser:http://djproject.sourceforge.net/ns
答案 5 :(得分: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");