由於一個項目的需要,必須在程序中嵌入一個瀏覽器來完成用戶的一些操作,研究了幾天之後本人決定使用DJ NativeSwing這個控件,該空間需要使用以下jar包支持
1.DJNativeSwing.jar
2.DJNativeSwing-SWT.jar
3.org.eclipse.swt.win32.win32.x86_64_3.100.1.v4236b.jar 或者 org.eclipse.swt.win32.win32.x86_3.102.0.v20130605-1544
下載地址(免積分下載):http://download.csdn.net/detail/shikai2008/6344335
其中前兩個爲必須jar包,第三個根據操作系統選擇自己合適的jar包即可。
前期工作做好之後就可以編寫自己的代碼了。
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import chrriis.common.UIUtils;
import chrriis.dj.nativeswing.swtimpl.NativeInterface;
import chrriis.dj.nativeswing.swtimpl.components.JWebBrowser;
import chrriis.dj.nativeswing.swtimpl.components.WebBrowserAdapter;
import chrriis.dj.nativeswing.swtimpl.components.WebBrowserEvent;
public class Test extends JPanel {
private static final long serialVersionUID = 1L;
private JPanel webBrowserPanel;
private JWebBrowser webBrowser;
// private String url;
public Test(String url) {
super(new BorderLayout());
this.url = url;
webBrowserPanel = new JPanel(new BorderLayout());
webBrowser = new JWebBrowser();
webBrowser.navigate(url);
webBrowser.setButtonBarVisible(false);
webBrowser.setMenuBarVisible(false);
webBrowser.setBarsVisible(false);
webBrowser.setStatusBarVisible(false);
webBrowserPanel.add(webBrowser, BorderLayout.CENTER);
add(webBrowserPanel, BorderLayout.CENTER);
// webBrowser.executeJavascript("javascrpit:window.location.href='http://www.baidu.com'");
webBrowser.executeJavascript("alert('haha')"); //執行Js代碼
}
public static void main(String[] args) {
final String url = "http://www.baidu.com";
final String title = "DJ NativeSwiting Test";
UIUtils.setPreferredLookAndFeel();
NativeInterface.open();
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame frame = new JFrame(title);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new Test(url), BorderLayout.CENTER);
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
});
NativeInterface.runEventPump();
}
}
至此,你的java代碼中就可以嵌入瀏覽器了