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

📄 cardstab.java

📁 SUN公司eclipse3.2.2经典例子
💻 JAVA
字号:
/******************************************************************************* * Copyright (c) 2006 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.examples.graphics;import org.eclipse.swt.graphics.*;/** * This tab demonstrates various transformations, such as scaling, rotation, and * translation. */public class CardsTab extends AnimatedGraphicsTab {		float movClubX, movClubY, movDiamondX, movDiamondY, movHeart, movSpade;	float inc_club = 5.0f;	float inc_diamond = 5.0f;	float inc_hearts = 5.0f;	float inc_spade = 5.0f;	float scale, scaleWidth;	int rotationAngle = 0;	float scaleArg = 0;	float heartScale = 0.5f;	float spadeScale = 0.333f;	int clubWidth, diamondWidth, heartWidth, spadeHeight; 		Image ace_club, ace_spade, ace_diamond, ace_hearts;/** * Constructor * @param example A GraphicsExample */public CardsTab(GraphicsExample example) {	super(example);}public String getCategory() {	return GraphicsExample.getResourceString("Transform"); //$NON-NLS-1$}public String getText() {	return GraphicsExample.getResourceString("Cards"); //$NON-NLS-1$}public String getDescription() {	return GraphicsExample.getResourceString("CardsDescription"); //$NON-NLS-1$}public void dispose() {	if (ace_club != null) {		ace_club.dispose();		ace_club = null;		ace_spade.dispose();		ace_spade = null;		ace_diamond.dispose();		ace_diamond = null;		ace_hearts.dispose();		ace_hearts = null;	}}public void next(int width, int height) {	rotationAngle = (rotationAngle+10)%360;	// scaleVal goes from 0 to 1, then 1 to 0, then starts over	scaleArg = (float)((scaleArg == 1) ? scaleArg - 0.1 : scaleArg + 0.1);	scale = (float)Math.cos(scaleArg);		movClubX += inc_club;	movDiamondX += inc_diamond;	movHeart += inc_hearts;	movSpade += inc_spade;		scaleWidth = (float) ((movClubY/height)*0.35 + 0.15);	movClubY = 2*height/5 * (float)Math.sin(0.01*movClubX - 90) + 2*height/5;    movDiamondY = 2*height/5 * (float)Math.cos(0.01*movDiamondX) + 2*height/5;        if (movClubX + clubWidth*scaleWidth > width) {    	movClubX = width - clubWidth*scaleWidth;        inc_club = -inc_club;    }    if (movClubX < 0) {        movClubX = 0;        inc_club = -inc_club;    }    if (movDiamondX + diamondWidth*scaleWidth > width) {	    movDiamondX = width - diamondWidth*scaleWidth;        inc_diamond = -inc_diamond;    }    if (movDiamondX < 0) {	    movDiamondX = 0;        inc_diamond = -inc_diamond;    }    if (movHeart + heartWidth*heartScale > width) {    	movHeart = width - heartWidth*heartScale;    	inc_hearts = -inc_hearts;    }    if (movHeart < 0) {    	movHeart = 0;    	inc_hearts = -inc_hearts;    }    if (movSpade + spadeHeight*spadeScale > height) {    	movSpade = height - spadeHeight*spadeScale;    	inc_spade = -inc_spade;    }    if (movSpade < 0) {    	movSpade = 0;    	inc_spade = -inc_spade;    }}/* (non-Javadoc) * @see org.eclipse.swt.examples.graphics.GraphicsTab#paint(org.eclipse.swt.graphics.GC, int, int) */public void paint(GC gc, int width, int height) {	if (!example.checkAdvancedGraphics()) return;	Device device = gc.getDevice();		if (ace_club == null) {		ace_club = GraphicsExample.loadImage(device, GraphicsExample.class, "ace_club.jpg");		ace_spade = GraphicsExample.loadImage(device, GraphicsExample.class, "ace_spade.jpg");		ace_diamond = GraphicsExample.loadImage(device, GraphicsExample.class, "ace_diamond.jpg");		ace_hearts = GraphicsExample.loadImage(device, GraphicsExample.class, "ace_hearts.jpg");	}		clubWidth = ace_club.getBounds().width;	diamondWidth = ace_diamond.getBounds().width;	heartWidth = ace_hearts.getBounds().width;	spadeHeight = ace_spade.getBounds().height;	Transform transform;		// ace of clubs			transform = new Transform(device);	transform.translate((int)movClubX, (int)movClubY);		transform.scale(scaleWidth, scaleWidth);		// rotate on center of image	Rectangle rect = ace_club.getBounds();	transform.translate(rect.width/2, rect.height/2);	transform.rotate(rotationAngle);	transform.translate(-rect.width/2, -rect.height/2);	gc.setTransform(transform);	transform.dispose();	gc.drawImage(ace_club, 0, 0);		// ace of diamonds	transform = new Transform(device);	transform.translate((int)movDiamondX, (int)movDiamondY);	transform.scale(scaleWidth, scaleWidth);	gc.setTransform(transform);	transform.dispose();	gc.drawImage(ace_diamond, 0, 0);	// ace of hearts	transform = new Transform(device);	transform.translate(movHeart, height/2);	transform.scale(heartScale, 0.5f*scale);	gc.setTransform(transform);	transform.dispose();	gc.drawImage(ace_hearts, 0, 0);		// ace of spades	transform = new Transform(device);	transform.translate(movSpade, movSpade);	transform.scale(0.5f*scale, spadeScale);	gc.setTransform(transform);	transform.dispose();	gc.drawImage(ace_spade, 0, 0);}}

⌨️ 快捷键说明

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