SWT(JFace)体验之圆环状(戒指型)

2016-02-19 11:43 7 1 收藏

关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享SWT(JFace)体验之圆环状(戒指型)教程,希望对大家能有一点小小的帮助。

【 tulaoshi.com - 编程语言 】

演示代码:
代码如下:

package swt_jface.demo1;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.events.MouseMoveListener;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.graphics.Region;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class RingShell {

int[] createCircle(int radius, int centerX, int centerY) {
int[] points = new int[360 * 2];
for(int i=0; i360; i++) {
points[i*2] = centerX + (int)(radius * Math.cos(Math.toRadians(i)));
points[i*2+1] = centerY + (int)(radius * Math.sin(Math.toRadians(i)));
}
return points;
}

Point originalPosition = null;
public RingShell() {

final Display display = new Display();
final Shell shell = new Shell(display, SWT.NO_TRIM | SWT.ON_TOP);
shell.setBackground(display.getSystemColor(SWT.COLOR_DARK_MAGENTA));

Region region = new Region();
region.add(createCircle(100, 100, 100));
region.subtract(createCircle(50, 100, 100));
shell.setRegion(region);

shell.addMouseListener(new MouseListener() {
public void mouseDoubleClick(MouseEvent e) {
display.dispose();
}
public void mouseDown(MouseEvent e) {
originalPosition = new Point(e.x, e.y);
}
public void mouseUp(MouseEvent e) {
originalPosition = null;
}
});

shell.addMouseMoveListener(new MouseMoveListener() {
public void mouseMove(MouseEvent e) {
if(originalPosition == null) return;
Point point = display.map(shell, null, e.x, e.y);
shell.setLocation(point.x - originalPosition.x, point.y - originalPosition.y);
System.out.println("Moved from: " + originalPosition + " to " + point);
}
});

Rectangle regionBounds = region.getBounds();
shell.setSize(regionBounds.width, regionBounds.height);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
region.dispose();
}

public static void main(String[] args) {
new RingShell();
}
}

来源:http://www.tulaoshi.com/n/20160219/1598334.html

延伸阅读
标签: PS PS教程
在Photoshop CS2刚发布的时候,看到英文的资料里有一个能将模糊变清晰的滤镜,当时我们戏称它为“反高斯模糊”。没有想到,拿到Photoshop CS2用了以后,才知道还真的可以反高斯模糊,不信?我们这就来看看效果吧。 步骤一、打开一张不够清晰的照片。 步骤二、执行“滤镜锐化智能锐化”命令,在弹出对话框中设定如图所示。 ...
什么是泛型 一种类型占位符,或称之为类型参数。我们知道在一个方法中,一个变量的值可以作为参数,但其实这个变量的类型本身也可以作为参数。泛型允许我们在调用的时候再指定这个类型参数是什么。在.net中,泛型能够给我们带来的两个明显好处是类型安全和减少装箱、拆箱。 类型安全和装箱、拆箱 作为一种类型参数,泛型很...
《黑暗之魂2》负重戒指获得方法 《黑暗之魂2》负重戒指获得方法 增加负重的戒指: 1、国王战士戒指,在密港破墙可以捡到(密港最里面一层,有个摆着毒液罐子的房间破墙)。 2、一龙戒指,2级霸者契约送的。 3、二龙戒指,打完蜘蛛BOSS后蝎子男送。 4、三龙戒指,龙城捡到。 1/4与1/2负重的区别: 1、1/4负重以下,跑得快,翻...
环状肉芽肿 环状肉芽肿应该如何预防 环状肉芽肿是一种什么病大家知道吗?环状肉芽肿是什么病,图老师小编估计大家都没听说过。恶性肉芽肿的症状有哪些呢?引起环状肉芽肿的原因有哪些呢?下面我们一起来看看环状肉芽肿有什么症状吧! 环状肉芽肿的概述 环状肉芽肿(granuloma annulare)是一种病因不明的良性炎症性...
《龙之信条》demo初体验 标题画面有四个选项 序章:主控一盾一剑的战士,上来一只牛B哄哄的红龙放个豪火球飞走了,一路前进,场景很黑,可以把油灯挂在腰上照明,路上石碑可以召唤队友,组成三物理一法术标准队伍,杀掉几批哥布林和鸟人,出现大怪奇美拉,值得一提的是这个东西无论长相还是死法都和奎秃头宰那只神似...... 编辑模式:可以创建两...

经验教程

323

收藏

54
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部