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