用过DJNativeSwing-SWT进来看看, 帮帮忙..
小弟从网上找了份代码, 功能是利用DJNativeSwing, 在swing中加载了个浏览器.
源代码:
package com.jj;import java.awt.BorderLayout;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.util.ArrayList;import java.util.List;import javax.swing.BorderFactory;import javax.swing.JButton;import javax.swing.JCheckBox;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.SwingUtilities;import javax.swing.UIManager;import javax.swing.UnsupportedLookAndFeelException;import org.eclipse.swt.widgets.MessageBox;//import com.birosoft.liquid.LiquidLookAndFeel;import chrriis.common.UIUtils;import chrriis.dj.nativeswing.swtimpl.NativeInterface;import chrriis.dj.nativeswing.swtimpl.components.JWebBrowser;import chrriis.dj.nativeswing.swtimpl.components.WebBrowserCommandEvent;import chrriis.dj.nativeswing.swtimpl.components.WebBrowserEvent;import chrriis.dj.nativeswing.swtimpl.components.WebBrowserListener;import chrriis.dj.nativeswing.swtimpl.components.WebBrowserNavigationEvent;import chrriis.dj.nativeswing.swtimpl.components.WebBrowserWindowOpeningEvent;import chrriis.dj.nativeswing.swtimpl.components.WebBrowserWindowWillOpenEvent;/** * @author Christopher Deckers */public class WebBrowserExample extends JPanel { final static JWebBrowser webBrowser = new JWebBrowser(); static String javascript = "alert('alert111');"; public WebBrowserExample(String url) { super(new BorderLayout()); JPanel webBrowserPanel = new JPanel(new BorderLayout()); webBrowserPanel.setBorder(BorderFactory .createTitledBorder("Native Web Browser component"));// webBrowser.navigate(url); //// webBrowser.setBarsVisible(false); webBrowserPanel.add(webBrowser, BorderLayout.CENTER); add(webBrowserPanel, BorderLayout.CENTER); // Create an additional bar allowing to show/hide the menu bar of the // web browser. JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 4, 4)); JButton home = new JButton("主页"); JButton forward = new JButton("前进"); JButton back = new JButton("后退"); JButton flush = new JButton("刷新"); JButton stop = new JButton("停止"); webBrowser.addWebBrowserListener(new WebBrowserListener() { public void windowWillOpen(WebBrowserWindowWillOpenEvent arg0) { // System.out.println("??????URL:"+arg0.getWebBrowser().getResourceLocation() // ); // System.out.println("???????URL:"+arg0.getWebBrowser().getStatusText() // ); webBrowser.navigate(arg0.getWebBrowser().getStatusText()); arg0.consume(); } public void windowOpening(WebBrowserWindowOpeningEvent arg0) { } public void windowClosing(WebBrowserEvent arg0) { } public void titleChanged(WebBrowserEvent arg0) { } public void statusChanged(WebBrowserEvent arg0) { } public void locationChanging(WebBrowserNavigationEvent arg0) { } public void locationChanged(WebBrowserNavigationEvent arg0) { } public void locationChangeCanceled(WebBrowserNavigationEvent arg0) { } public void loadingProgressChanged(WebBrowserEvent arg0) { } public void commandReceived(WebBrowserEvent arg0, String arg1, String[] arg2) { } public void commandReceived(WebBrowserCommandEvent arg0) { // TODO Auto-generated method stub } }); buttonPanel.add(home); buttonPanel.add(back); buttonPanel.add(forward); buttonPanel.add(flush); buttonPanel.add(stop); home.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { webBrowser.navigate("www.163.com"); } }); forward.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { webBrowser.navigateForward(); } }); back.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { webBrowser.navigateBack(); } }); flush.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { webBrowser.reloadPage(); } }); stop.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { webBrowser.stopLoading(); } }); add(buttonPanel, BorderLayout.SOUTH); SwingUtilities.invokeLater(new Runnable() { public void run() { webBrowser.executeJavascript(javascript); //执行JavaScript } }); NativeInterface.open(); NativeInterface.runEventPump(); } /* Standard main method to try that test as a standalone application. */ public static void main(String[] args) { ReadJS rjs = new ReadJS();// javascript = rjs.readFileByLines("./javascipt1.js"); System.out.println(javascript); JFrame frame = new JFrame("DJ Native Swing Test"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); WebBrowserExample wbe = new WebBrowserExample("http://www.baidu.com"); frame.add(wbe, BorderLayout.CENTER); // frame.setUndecorated(true); // frame.setSize(1024, 768); frame.setSize(800, 600); // frame.setLocationByPlatform(true); frame.setVisible(true); }}