⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 snippet219.java

📁 Eclipse JAVA开发软件中SWT各控件范例源码
💻 JAVA
字号:
/******************************************************************************* * Copyright (c) 2000, 2005 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: *     IBM Corporation - initial API and implementation *******************************************************************************/package org.eclipse.swt.snippets;import org.eclipse.swt.*;import org.eclipse.swt.graphics.*;import org.eclipse.swt.widgets.*;/** * Region snippet: Create non-rectangular shell from an image with transparency * * For a list of all SWT example snippets see * http://www.eclipse.org/swt/snippets/ *  * @since 3.2 */public class Snippet219 {	public static void main(String[] args) {		final Display display = new Display ();		final Image image = display.getSystemImage(SWT.ICON_INFORMATION);		final Shell shell = new Shell (display, SWT.NO_TRIM);		Region region = new Region();		final ImageData imageData = image.getImageData();		if (imageData.alphaData != null) {			Rectangle pixel = new Rectangle(0, 0, 1, 1);			for (int y = 0; y < imageData.height; y++) {				for (int x = 0; x < imageData.width; x++) {					if (imageData.getAlpha(x, y) == 255) {						pixel.x = imageData.x + x;						pixel.y = imageData.y + y;						region.add(pixel);					} 				}			}		} else {			ImageData mask = imageData.getTransparencyMask();			Rectangle pixel = new Rectangle(0, 0, 1, 1);			for (int y = 0; y < mask.height; y++) {				for (int x = 0; x < mask.width; x++) {					if (mask.getPixel(x, y) != 0) {						pixel.x = imageData.x + x;						pixel.y = imageData.y + y;						region.add(pixel);					}				}			}		}		shell.setRegion(region);		Listener l = new Listener() {			int startX, startY;			public void handleEvent(Event e)  {				if (e.type == SWT.KeyDown && e.character == SWT.ESC) {					shell.dispose();				}				if (e.type == SWT.MouseDown && e.button == 1) {					startX = e.x;					startY = e.y; 				}				if (e.type == SWT.MouseMove && (e.stateMask & SWT.BUTTON1) != 0) {					Point p = shell.toDisplay(e.x, e.y);					p.x -= startX;					p.y -= startY;					shell.setLocation(p);				}				if (e.type == SWT.Paint) {					e.gc.drawImage(image, imageData.x, imageData.y);				}			}		};		shell.addListener(SWT.KeyDown, l);		shell.addListener(SWT.MouseDown, l);		shell.addListener(SWT.MouseMove, l);		shell.addListener(SWT.Paint, l);		shell.setSize(imageData.x + imageData.width, imageData.y + imageData.height);		shell.open ();		while (!shell.isDisposed ()) {			if (!display.readAndDispatch ()) display.sleep ();		}		region.dispose();		image.dispose ();		display.dispose ();	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -