利用djnativeswing获取跳转url(注意: 这是非弹窗,非新窗口的url,而是新页面的url)

package org.jivesoftware.pmsaas.sys.domain;

import java.awt.BorderLayout;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import java.awt.event.ContainerEvent;
import java.awt.event.ContainerListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.HierarchyBoundsListener;
import java.awt.event.HierarchyEvent;
import java.awt.event.InputMethodEvent;
import java.awt.event.InputMethodListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Hashtable;
import java.util.Map;

import javax.swing.JPanel;

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;


/**
 * 该类是一个浏览器类 也是面板类 该类中面板和浏览器整合为一体 ----也就是浏览器面板
 * */
public class NetBrowser extends JPanel{

	/**
	 * 
	 */
	private static final long serialVersionUID = -679703553152283868L;
		
	 	private JPanel webBrowserPanel;
	 	public static Map<String,JWebBrowser>t_jwbrowsers=new Hashtable<String, JWebBrowser>();;
	    private static JWebBrowser webBrowser;
	    

	    public NetBrowser(String url)
	    {
	         super(new BorderLayout());
	         webBrowserPanel = new JPanel(new BorderLayout());
	         webBrowser = new JWebBrowser();
	         /**
			          * native swing 官方API解释
			          * navigate
		
		public boolean navigate(String resourceLocation)
		Navigate to a resource, with its location specified as a URL or path.
		Parameters:
		resourceLocation - the URL or path.
		Returns:
		true if the navigation was successful.
	          * */
	         webBrowser.navigate(url);
	         webBrowser.setButtonBarVisible(false);
	         webBrowser.setMenuBarVisible(true);
	         webBrowser.setBarsVisible(false);
	         webBrowser.setStatusBarVisible(false);
	         
	         
	         webBrowser.addWebBrowserListener(new WebBrowserListener() {
				
				@Override
				public void windowWillOpen(WebBrowserWindowWillOpenEvent arg0) {
					JWebBrowser jwb=arg0.getNewWebBrowser();
					String location=jwb.getResourceLocation();
					System.out.println(location);
				}
				
				@Override
				public void windowOpening(WebBrowserWindowOpeningEvent arg0) {
//					JWebBrowser jwb=arg0.getNewWebBrowser();
//					String location=jwb.getResourceLocation();
//					System.out.println(location);
				}
				
				@Override
				public void windowClosing(WebBrowserEvent arg0) {
					// TODO Auto-generated method stub
					
				}
				
				@Override
				public void titleChanged(WebBrowserEvent arg0) {
					
				}
				
				@Override
				public void statusChanged(WebBrowserEvent arg0) {
					
				}
				
				@Override
				public void locationChanging(WebBrowserNavigationEvent arg0) {
					String location=arg0.getNewResourceLocation();
					System.out.println(location);
				}
				
				@Override
				public void locationChanged(WebBrowserNavigationEvent arg0) {
					// TODO Auto-generated method stub
					
				}
				
				@Override
				public void locationChangeCanceled(WebBrowserNavigationEvent arg0) {

				}
				
				@Override
				public void loadingProgressChanged(WebBrowserEvent arg0) {
					
				}
				
				@Override
				public void commandReceived(WebBrowserCommandEvent arg0) {
					
				}
			});
	         
	         
	         
	         //webBrowserPanel与webBrowser互相包含
	         webBrowserPanel.add(webBrowser, BorderLayout.CENTER);
	         add(webBrowserPanel, BorderLayout.CENTER);
	         t_jwbrowsers.put(url, webBrowser);
	        
	    }
	    
	    public static JWebBrowser getJWebBrowser(String url){
	    	return t_jwbrowsers.get(url);
	    }
		
	    
	    
	    
}

 

posted @ 2013-03-20 16:02  IamThat  阅读(1263)  评论(0编辑  收藏  举报