http://blog.csdn.net/shikai0302/article/details/12206281
由于一个项目的需要,必须在程序中嵌入一个浏览器来完成用户的一些操作,研究了几天之后本人决定使用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包即可。
前期工作做好之后就可以编写自己的代码了。
Java代码
- 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();
- }
- }