亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? swtpane.java

?? 用java寫的一個瀏覽器
?? JAVA
字號:
package demo;

import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Panel;
import java.io.IOException;
import java.io.InputStream;

import org.eclipse.swt.SWT;
import org.eclipse.swt.awt.SWT_AWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.browser.CloseWindowListener;
import org.eclipse.swt.browser.TitleEvent;
import org.eclipse.swt.browser.TitleListener;
import org.eclipse.swt.browser.WindowEvent;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.ImageData;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class SWTPane extends Panel {
	DisplayThread displayThread;
	private Canvas canvas;

	public SWTPane() {
		displayThread = new DisplayThread();
		displayThread.start();
		canvas = new Canvas();
		setLayout(new BorderLayout());
		add(canvas, BorderLayout.CENTER);
	}

	public void addNotify() {
		super.addNotify();
		Display dis = displayThread.getDisplay();
		dis.syncExec(new Runnable() {
			public void run() {
				Shell shell = SWT_AWT.new_Shell(displayThread.getDisplay(),
						canvas);
				shell.setLayout(new FillLayout());

				final Composite composite;
				composite = new Composite(shell, SWT.CENTER);
				composite.setBackground(new Color(null, 255, 255, 255));
				composite.setLayout(new FillLayout());
				
				CTabFolder myTabFolder = new CTabFolder(composite, SWT.CENTER);
				myTabFolder.setBackground(Display.getDefault().getSystemColor(
						SWT.COLOR_WHITE));
				myTabFolder.setSelectionBackground(new Color[] {
						Display.getDefault().getSystemColor(SWT.COLOR_TITLE_BACKGROUND),
						Display.getDefault().getSystemColor(SWT.COLOR_GREEN),
						Display.getDefault().getSystemColor(SWT.COLOR_BLUE) }, 
						new int[] { 50,100 }, true);
				myTabFolder.setBorderVisible(true);
				myTabFolder.setSelectionForeground(Display.getDefault()
						.getSystemColor(SWT.COLOR_WHITE));
				myTabFolder.addSelectionListener(new SelectionAdapter() {
					public void widgetSelected(final SelectionEvent e) {
						// selectBrowserTabFolderWidgetSelected(e);
					}
				});
				final CTabItem browserTabItem = new CTabItem(myTabFolder,
						SWT.BORDER | SWT.CLOSE);
				browserTabItem.setText("正在打開...");
				if (Display.getDefault() != null) {
//					browserTabItem.setImage(DmStandard.getInterfaceImage(
//							Display.getDefault(), "ie6.ico"));
					browserTabItem.setImage(getImage(Display.getDefault(),"ie6.ico"));
				}
				final Composite compositeTabFolder = new Composite(myTabFolder,
						SWT.CENTER);
				compositeTabFolder.setLayout(new FillLayout());
				browserTabItem.setControl(compositeTabFolder);
				final Browser browser = new Browser(compositeTabFolder, SWT.CENTER);
				browser.setUrl("http://www.163.com");
				initialize(myTabFolder, browserTabItem, browser);
			}
		});
	}
	
	private void initialize(final CTabFolder tabFolder, final CTabItem cti, final Browser browser) {
		//選中剛創建的標簽
		tabFolder.setSelection(cti);

		/**
		 * 監聽雙擊關閉標簽頁
		 */
		tabFolder.addMouseListener(new MouseAdapter() {
			public void mouseDoubleClick(final MouseEvent e) {
				Point point = new Point(e.x, e.y);
				CTabItem cti = tabFolder.getItem(point);
				if (cti!=null && e.button==1 && !cti.isDisposed())
					cti.dispose();
			}
		});
		/**
		 * 監聽標簽頁 CTabItem Dispose() 事件
		 */
		cti.addDisposeListener(new DisposeListener() {
			public void widgetDisposed(final DisposeEvent e) {
				cTabItemDisposeHandler(e);
			}
		});

		/**
		 * 監聽瀏覽器關閉事件(此事件一般由網頁關閉代碼觸發)
		 */
		browser.addCloseWindowListener(new CloseWindowListener() {
			public void close(WindowEvent event) {
				int idx = tabFolder.getSelectionIndex();
				if (idx >= 0){
					tabFolder.getItem(idx).dispose();
				}
			}
		});
		
		//監聽新開標簽頁標題事件
		browser.addTitleListener(new TitleListener() {
			public void changed(TitleEvent event) {
				browserTitleChangeHandler(cti, event);
			}
		});
		/**
		 * 監聽 _blank 網頁彈出事件
		 */
		browser.addOpenWindowListener(new org.eclipse.swt.browser.OpenWindowListener() {
				public void open(final org.eclipse.swt.browser.WindowEvent e) {
						final CTabItem newTabItem = new CTabItem(tabFolder,
								SWT.BORDER|SWT.CLOSE);
						final Browser tabBrowser = new Browser(tabFolder, SWT.NONE);
						newTabItem.setControl(tabBrowser);						
						initialize(tabFolder, newTabItem, tabBrowser);
						e.browser = tabBrowser;						
//						/**///檢測此URL是否已打開,如果是,則關閉剛剛建立的新標簽,并定位到存在url對應的TAB標簽上
//						e.display.asyncExec(new Runnable() {
//							public void run() {								
//									System.out.println("sdf");
//							}
//						});
				}
		});
	}
	/**
	 * 監聽標簽頁標題事件
	 */
    private void browserTitleChangeHandler(CTabItem browserTabItem, TitleEvent event){
		if ( browserTabItem != null && !browserTabItem.isDisposed() ) {
			browserTabItem.setText(cutTitle(event.title));
			browserTabItem.setToolTipText(event.title);
		}
    }
    private String cutTitle(String title) {
		String newTitle = title;
		if (title.length() > 15) {
			newTitle = title.substring(0, 15) + "...";
		}
		return newTitle;
	}
    /**
	 * 監聽標簽頁 CTabItem Dispose() 事件
	 */
    private void cTabItemDisposeHandler(final DisposeEvent e){
    	try{
	    	CTabItem cti = (CTabItem)e.widget;
	    	//首先將此銷毀的CTabItem和Browser從HashMap中移除
	    	CTabFolder ctf = (CTabFolder)cti.getParent();	    	
	    	//關掉與此標簽相關的Composite和Browser
			Composite c = (Composite)cti.getControl();
			if (c!=null&&!c.isDisposed()){
				Control cl = c.getChildren()[0];
				if (!cl.isDisposed()) {
					cl.dispose();
					cl=null;
				}
				if (!c.isDisposed())c.dispose();
				if (!cti.isDisposed())cti.dispose();
			}			
    	} catch (ClassCastException cce){
    		cce.printStackTrace();
    	} catch(Exception ex){
    		ex.printStackTrace();
    	}
    }
    
    private Image getImage( Display d, String imageName){
    	InputStream is = this.getClass().getResourceAsStream(imageName);
    	 try {
             if (is != null) {
                 ImageData imageData = new ImageData(is);
                 if (imageData != null) {
                     return new Image(d, imageData);
                 }
             }
         } catch (Exception e) {
             e.printStackTrace();
         } finally {
             try {
                 if(is != null)
                     is.close();
             } catch (IOException e1) {
             	e1.printStackTrace();
             }
         }
         return null;
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区在线影院| 国产色一区二区| 不卡一区中文字幕| 国产成人超碰人人澡人人澡| 国产一区二区三区日韩| 精品午夜一区二区三区在线观看| 奇米888四色在线精品| 蜜桃91丨九色丨蝌蚪91桃色| 久久精品国产久精国产| 国产精品一区在线| www.欧美日韩| 欧洲一区在线观看| 欧美一区国产二区| 国产清纯美女被跳蛋高潮一区二区久久w | 一区二区三区四区五区视频在线观看| 国产精品福利一区| 一区二区三区免费| 精品一区二区三区香蕉蜜桃| 国产伦精品一区二区三区视频青涩 | 国产欧美精品一区二区色综合| 欧美国产日韩精品免费观看| 一区精品在线播放| 亚洲成人av资源| 狠狠狠色丁香婷婷综合激情| 菠萝蜜视频在线观看一区| 91福利社在线观看| 日韩一级欧美一级| 欧美激情一区二区在线| 亚洲国产欧美日韩另类综合| 精品伊人久久久久7777人| 成人综合日日夜夜| 欧美网站一区二区| 久久综合色之久久综合| 亚洲欧美日韩人成在线播放| 免费成人在线观看视频| aa级大片欧美| 欧美大尺度电影在线| 一区二区中文视频| 国产资源精品在线观看| 91黄色免费版| 国产喷白浆一区二区三区| 一区二区成人在线视频| 国产成人啪免费观看软件| 欧美片在线播放| 国产精品久久毛片a| 久久99深爱久久99精品| 欧美午夜一区二区三区 | 一本到不卡精品视频在线观看| 日韩一区二区三区av| 亚洲视频免费在线观看| 国产河南妇女毛片精品久久久| 7777精品伊人久久久大香线蕉经典版下载 | 91在线观看下载| 精品国产精品网麻豆系列| 亚洲永久免费av| 99国产精品久久久久久久久久| 精品国产乱码久久久久久夜甘婷婷 | 国产嫩草影院久久久久| 看片网站欧美日韩| 欧美日韩电影一区| 亚洲免费av网站| 国产99精品国产| 久久久久久电影| 狠狠色狠狠色合久久伊人| 337p亚洲精品色噜噜噜| 亚洲 欧美综合在线网络| 色综合咪咪久久| 中文字幕在线观看一区| 成熟亚洲日本毛茸茸凸凹| 国产日韩欧美一区二区三区综合| 久久国产剧场电影| 日韩一区二区三区视频| 免费视频最近日韩| 9191久久久久久久久久久| 亚洲成精国产精品女| 欧美精品自拍偷拍动漫精品| 亚洲成人在线免费| 欧美日韩在线播放一区| 日韩精品国产欧美| 欧美高清hd18日本| 秋霞午夜鲁丝一区二区老狼| 日韩亚洲欧美综合| 麻豆极品一区二区三区| 精品国产髙清在线看国产毛片| 久久精品国产澳门| 精品国产亚洲在线| 大白屁股一区二区视频| 中文字幕在线观看不卡| 色噜噜狠狠成人中文综合| 亚洲精品免费电影| 欧美午夜精品一区| 日本不卡视频一二三区| 欧美精品一区视频| 成人一道本在线| 亚洲国产你懂的| 精品久久免费看| 成人久久久精品乱码一区二区三区| 最新高清无码专区| 在线成人免费观看| 国产 欧美在线| 舔着乳尖日韩一区| 国产亚洲精品bt天堂精选| 91麻豆精东视频| 欧美bbbbb| 1024成人网| 精品少妇一区二区三区在线播放 | 欧美体内she精高潮| 久久成人免费电影| 国产精品嫩草久久久久| 欧美三级一区二区| 国产风韵犹存在线视精品| 亚洲在线观看免费视频| 久久精品一区八戒影视| 91国产丝袜在线播放| 国产原创一区二区| 天堂久久一区二区三区| 中文字幕一区二区三区色视频 | 精品久久五月天| 欧美亚洲一区二区在线观看| 国产精品综合一区二区| 亚洲国产精品影院| 国产精品久久久久影院亚瑟| 日韩欧美亚洲另类制服综合在线| 99视频在线精品| 激情文学综合丁香| 五月开心婷婷久久| 亚洲欧美在线aaa| 精品国产91洋老外米糕| 欧美日韩一区不卡| 91日韩一区二区三区| 国产高清久久久久| 免费成人深夜小野草| 一区二区视频在线看| 久久久www成人免费无遮挡大片| 欧美美女直播网站| 色婷婷久久综合| 99久久99久久精品国产片果冻| 国产精品88888| 国产最新精品精品你懂的| 日韩vs国产vs欧美| 亚洲香蕉伊在人在线观| 亚洲精品高清在线| 中文字幕中文字幕一区| 欧美激情一区在线| 中文字幕高清不卡| 国产欧美一区视频| 久久久综合精品| 久久久综合激的五月天| 精品成人私密视频| 精品入口麻豆88视频| 久久日韩精品一区二区五区| 日韩片之四级片| 欧美精品一区二区高清在线观看| 日韩午夜av电影| 欧美精品一区二区三区在线播放| 精品精品欲导航| 精品久久久久一区| 日韩精品自拍偷拍| 精品国产免费一区二区三区四区| 精品少妇一区二区三区免费观看| 精品国产91乱码一区二区三区| 精品国产sm最大网站| 国产欧美中文在线| 亚洲人成精品久久久久| 亚洲影院久久精品| 三级不卡在线观看| 久久成人av少妇免费| 成人午夜电影网站| 91九色最新地址| 日韩精品一区二区三区中文不卡 | 99re免费视频精品全部| 91久久久免费一区二区| 欧美日韩高清在线| 久久久久久夜精品精品免费| 日韩美女视频一区| 视频在线观看国产精品| 九九**精品视频免费播放| 国产精品亚洲午夜一区二区三区| av中文字幕在线不卡| 在线播放亚洲一区| 久久精品夜色噜噜亚洲a∨| 亚洲视频一区二区在线观看| 视频一区在线视频| 国产很黄免费观看久久| 在线免费av一区| 久久久久久久久久久99999| 亚洲精品第1页| 国产乱色国产精品免费视频| 色乱码一区二区三区88| 欧美v亚洲v综合ⅴ国产v| 亚洲精品久久久久久国产精华液| 久草精品在线观看| 色综合中文字幕| 日韩精品在线一区二区| 亚洲三级免费观看| 捆绑调教一区二区三区| 欧美在线观看禁18| 国产亚洲成av人在线观看导航| 五月综合激情婷婷六月色窝| 91香蕉视频污|