接到项目需求,要将开发好的Web端也就是浏览器内嵌到程序中,也就是完成像C/S端的样式。经过几天学习Swing+Awt后,并没有了解到内嵌的样式,最后看到了SWT,也就是DJNativeSwing控件,可以很简单效率的完成功能。
所需Jar包如下,前两个Jar包为必须导入,后两个根据系统选择。
Jar下载地址:http://download.csdn.net/detail/iron_man501/9794825
1.DJNativeSwing.jar
2.DJNativeSwing-SWT.jar
3.32位:org.eclipse.swt.win32.win32.x86_64_3.100.1.v4236b.jar
64位: org.eclipse.swt.win32.win32.x86_3.102.0.v20130605-1544
package com;
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("Hello World!"); //执行Js代码
}
public static void main(String[] args) {
final String url = "http://www.baidu.com";
final String title = "百度首页";
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();
}
}
显示结果为: