由于一个项目的需要,必须在程序中嵌入一个浏览器来完成用户的一些操作,研究了几天之后本人决定使用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代码中就可以嵌入浏览器了