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

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

?? capturescreen.java

?? 用SWT 實現的截屏程序。源碼中有注釋
?? JAVA
字號:
package swt;

import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.graphics.Transform;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Canvas;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;

public class CaptureScreen {//2007-8-2, weilai2@163.com
	Shell shell;
	Canvas canvas;
	Button bt;
	final Display display;

	public CaptureScreen(final Display display) {
		this.display = display;
		final float scaleX = 0.2f, scaleY = 0.2f;
		final Rectangle bound0 = display.getBounds();
		//imgRect is the image's position shown in canvas.
		final Rectangle imgRect = new Rectangle(0, 0,
				(int) (scaleX * bound0.width), (int) (scaleY * bound0.height));

		shell = new Shell(display);
		shell.setText("CaptureScreen, ctrl+c save to file.");
		shell.setBounds(0, 0, bound0.width / 3, bound0.height / 4);
		Canvas[][] LR = addCanvases(shell, new int[] { 100 }, new int[] { 20,
				80 }, SWT.BORDER);
		Button[][] bts = addButtons(LR[0][0], 4, 1, SWT.PUSH);
		bt = bts[0][0];
		bt.setText("capture");
		canvas = LR[0][1];
		//
		Button bt = bts[0][0];
		MouseListeners_CaptureScreen mouse = new MouseListeners_CaptureScreen(
				canvas);
		new KeyListener_CaptureScreen(canvas, mouse, imgRect);

		//
		canvas.addPaintListener(new PaintListener() {
			Transform trans = new Transform(display);
			{
				trans.scale(scaleX, scaleY);//zoom in, zoom out...
			}

			public void paintControl(PaintEvent e) {
				GC gc = e.gc;
				Image img = copyArea(0, 0, display, display.getBounds());
				gc.setTransform(trans);
				gc.drawImage(img, 0, 0);
			}
		});
		bt.addListener(SWT.Selection, new Listener() {
			public void handleEvent(Event event) {
			}
		});
		post();
	}

	/**
	 *   Copies a rectangular area of the receiver(PC window?) at the specified
	 * position(x,y..) into a image(with size of $imgSize).
	 */
	public static Image copyArea(int x, int y, Display dis, Rectangle imgSize) {
		Image image = new Image(dis, imgSize);
		final GC gc = new GC(dis);
		gc.copyArea(image, x, y);
		return image;
	}

	private void post() {
		shell.pack();//seemed that it caused  compression.
		shell.open();
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch())
				display.sleep();
		}
		display.dispose();
	}

	/**
	 * add new canvas on $parent with GridLayout. the count of new canvas is $rows.len*$cols.len. <br>
	 * if rows[i] is 22, rows[i]'s high  is 22% of $parent's  high....etc.<br>
	 * if cols[j] is 22, cols[j]'s width is 22% of $parent's width....etc.<br>
	 * should: sigmaSum(rows[i])==sigmaSum(cols[i])==1 . <br>
	 * $style is SWT.BORDER...etc.
	 */
	public static Canvas[][] addCanvases(Canvas parent, int[] rows, int[] cols,
			int style) {
		GridLayout layout = new GridLayout(cols.length, false);
		parent.setLayout(layout);
		Canvas[][] ret = new Canvas[rows.length][];
		final int height0 = (int) (parent.getBounds().height * 0.8);//0.8 avoid figure excess the screen.
		final int width0 = (int) (parent.getBounds().width * 0.9);
		int rowY = 0;
		for (int i = 0; i < ret.length; i++) {
			final int rowHigh = (int) (height0 * rows[i] / (float) 100);
			ret[i] = new Canvas[cols.length];
			int colX = 0;
			for (int j = 0; j < ret[i].length; j++) {
				ret[i][j] = new Canvas(parent, SWT.BORDER);
				int colWidth = (int) (width0 * cols[j] / (float) 100);
				//
				GridData d = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
				d.widthHint = colWidth;
				d.heightHint = rowHigh;
				d.grabExcessHorizontalSpace = true;
				d.grabExcessVerticalSpace = true;
				ret[i][j].setLayoutData(d);
				//
				ret[i][j].setBounds(colX, rowY, colWidth, rowHigh);
				colX += colWidth;
			}
			rowY += rowHigh;
		}
		return ret;
	}

	/**
	 * addButton buttons to $parent, style is SWT.PUSH...etc.
	 */
	public static Button[][] addButtons(Canvas parent, int row, int col,
			int style) {
		GridLayout layout = new GridLayout();
		layout.numColumns = col;
		Rectangle[][] r = splitRectangle(parent.getBounds(), row, col);
		Button[][] b = new Button[row][];
		for (int i = 0; i < b.length; i++) {
			b[i] = new Button[col];
			for (int j = 0; j < b[i].length; j++) {
				b[i][j] = new Button(parent, style);
				b[i][j].setText("but" + i + "" + j);
				b[i][j].setBounds(r[i][j]);
			}
		}
		return b;
	}

	/**
	 * splitRectangle(x,y,width,height) to row*col sub rectangles.
	 */
	public static Rectangle[][] splitRectangle(Rectangle r, int row, int col) {
		int w = r.width / col;
		int h = r.height / row;
		Rectangle[][] ret = new Rectangle[row][];
		int curY = 0;
		for (int i = 0; i < ret.length; i++) {
			ret[i] = new Rectangle[col];
			int curX = 0;
			for (int j = 0; j < ret[i].length; j++) {
				ret[i][j] = new Rectangle(curX, curY, w, h);
				curX += w;
			}
			curY += h;
		}
		return ret;
	}

	public static void main(String[] args) {
		Display dis = new Display();
		new CaptureScreen(dis);
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一级二级| 日韩欧美一二三| 久久天堂av综合合色蜜桃网| 视频一区中文字幕国产| 欧美日韩日本视频| 日韩精品免费视频人成| 欧美一区二区三区精品| 精品一区二区三区在线播放| 日韩精品专区在线影院观看 | 色国产综合视频| 曰韩精品一区二区| 欧美日韩国产综合视频在线观看| 午夜精品久久久久久久| 日韩美女一区二区三区| 国产成a人无v码亚洲福利| 最新久久zyz资源站| 欧美制服丝袜第一页| 另类小说一区二区三区| 国产色91在线| 在线观看亚洲成人| 免费一级片91| 欧美国产一区视频在线观看| 色吧成人激情小说| 青娱乐精品视频| 中文字幕电影一区| 欧美日韩一二三区| 国产白丝网站精品污在线入口| 亚洲欧洲av色图| 91麻豆精品国产91久久久资源速度 | 午夜国产精品一区| 精品国产一区二区三区久久久蜜月 | 最新国产成人在线观看| 678五月天丁香亚洲综合网| 国产在线视视频有精品| 亚洲美女屁股眼交3| 日韩一区二区电影| 99久久er热在这里只有精品66| 午夜电影网亚洲视频| 久久精品水蜜桃av综合天堂| 欧美唯美清纯偷拍| 国产激情视频一区二区三区欧美| 一区二区三区四区不卡在线| 亚洲精品在线三区| 在线免费观看视频一区| 国产一区不卡精品| 午夜视频在线观看一区| 综合电影一区二区三区 | 久久久精品一品道一区| 欧美视频中文一区二区三区在线观看| 黄色小说综合网站| 亚洲成人av中文| 国产精品久久网站| 亚洲精品一区二区三区影院 | 91麻豆视频网站| 久久99精品国产.久久久久久| 自拍偷拍国产精品| 国产亚洲婷婷免费| 欧美一区二区三区免费视频| 在线观看日韩一区| jlzzjlzz亚洲女人18| 国产一区激情在线| 青娱乐精品在线视频| 亚洲bt欧美bt精品| 亚洲六月丁香色婷婷综合久久| 久久精品欧美一区二区三区不卡| 欧美酷刑日本凌虐凌虐| 在线观看日韩电影| 色爱区综合激月婷婷| 色婷婷综合久久久| 96av麻豆蜜桃一区二区| 国产91在线观看丝袜| 国产精品一区二区三区99| 看电影不卡的网站| 美腿丝袜亚洲一区| 免费欧美日韩国产三级电影| 五月天网站亚洲| 性做久久久久久久免费看| 亚洲一卡二卡三卡四卡无卡久久| 亚洲美女视频在线| 亚洲综合成人在线视频| 亚洲一线二线三线视频| 亚洲制服丝袜在线| 亚洲第一综合色| 亚洲mv在线观看| 丝袜亚洲精品中文字幕一区| 五月激情六月综合| 日本成人在线电影网| 蜜桃视频一区二区三区| 狠狠色综合播放一区二区| 国产一区二区美女诱惑| 国产精品一区二区黑丝| 顶级嫩模精品视频在线看| 成人激情开心网| 91原创在线视频| 欧美亚洲综合色| 7777精品伊人久久久大香线蕉的| 欧美日韩国产在线观看| 欧美一区二区在线看| 精品av综合导航| 亚洲国产激情av| 亚洲乱码国产乱码精品精可以看 | 久热成人在线视频| 国产一区久久久| 9i看片成人免费高清| 色综合久久中文字幕综合网| 欧美视频在线播放| 欧美r级电影在线观看| 亚洲国产高清在线| 亚洲国产日韩a在线播放性色| 日本vs亚洲vs韩国一区三区二区| 国产一区二区三区黄视频| 99久久精品国产毛片| 欧美日韩在线播放一区| www激情久久| 亚洲日本成人在线观看| 日韩成人精品在线| 国产精品12区| 欧美性受极品xxxx喷水| 精品免费国产一区二区三区四区| 欧美国产日韩亚洲一区| 亚洲国产成人91porn| 精品一区二区三区在线播放| 91在线视频18| 日韩精品一区在线观看| 伊人一区二区三区| 久久国产人妖系列| 色综合久久久久久久久| 欧美白人最猛性xxxxx69交| 亚洲欧美偷拍三级| 久久精品国产99国产| 色婷婷综合激情| 国产日韩视频一区二区三区| 免费xxxx性欧美18vr| 94-欧美-setu| 国产亚洲欧美日韩俺去了| 亚洲线精品一区二区三区| 国产精品99久久久| 精品视频免费看| 国产精品乱码久久久久久| 男女男精品网站| 一本久久a久久免费精品不卡| 精品福利一二区| 性做久久久久久免费观看| 91在线播放网址| 日本一区二区免费在线观看视频| 日韩激情在线观看| 91黄色激情网站| 国产精品三级在线观看| 精品一区二区三区视频在线观看| 欧美三级韩国三级日本一级| 国产精品久久影院| 国产99久久久国产精品免费看 | 奇米777欧美一区二区| 一道本成人在线| 欧美国产成人精品| 国产一区二区精品在线观看| 91精品国产色综合久久ai换脸 | 精品一区二区三区视频| 91精品国产91久久久久久一区二区| 亚洲欧洲精品成人久久奇米网| 狠狠v欧美v日韩v亚洲ⅴ| 538prom精品视频线放| 亚洲观看高清完整版在线观看| 91首页免费视频| 国产精品久久夜| 成人黄色小视频| 午夜电影一区二区三区| 欧美三级三级三级爽爽爽| 亚洲国产日韩a在线播放性色| 色噜噜狠狠一区二区三区果冻| 最近中文字幕一区二区三区| 99久久免费视频.com| 中文欧美字幕免费| www.色精品| 综合网在线视频| 欧洲av在线精品| 亚洲国产wwwccc36天堂| 欧美日本免费一区二区三区| 午夜激情久久久| 日韩精品资源二区在线| 国产毛片一区二区| 日本一区二区三区久久久久久久久不| 国产伦精品一区二区三区免费| 久久日韩粉嫩一区二区三区| 国产一区二区导航在线播放| 中文字幕精品一区二区精品绿巨人| 成人午夜精品在线| 亚洲欧美日韩在线播放| 欧美性做爰猛烈叫床潮| 秋霞国产午夜精品免费视频| 精品日韩欧美一区二区| 国产成人一区在线| 成人欧美一区二区三区黑人麻豆 | 91精品国产一区二区三区| 麻豆精品国产传媒mv男同| 久久久久久久久久电影| 成人丝袜高跟foot| 一区二区成人在线视频 | 一本色道久久综合亚洲aⅴ蜜桃| 一区二区三区四区视频精品免费|