日期:2014-05-20 浏览次数:20734 次
package DJ; 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.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 JWebBrowser webBrowser = new JWebBrowser(); 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 first = 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("将要跳转"); // 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) { } }); buttonPanel.add(first); buttonPanel.add(back); buttonPanel.add(forward); buttonPanel.add(flush); buttonPanel.add(stop); first.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); NativeInterface.open(); // 在SWT的实现使用母语的Swing框架。 NativeInterface.runEventPump(); } /* Standard main method to try that test as a standalone application. */ public static void main(String[] args) { JFrame frame = new JFrame("DJ Native Swing Test"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(new WebBrowserExample("www.baidu.com"), BorderLayout.CENTER); // frame.setUndecorated(true); // frame.setSize(1024, 768); frame.setSize(800, 600); // frame.setLocationByPlatform(true); frame.setVisible(true); } }