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

m一生有你l

m一生有你l

2016-02-19 11:43

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

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();
}
}
展开更多 50%)
分享

猜你喜欢

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

编程语言 网络编程
SWT(JFace)体验之圆环状(戒指型)

SWT(JFace)体验之Icon任我变

编程语言 网络编程
SWT(JFace)体验之Icon任我变

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

SWT/JFace开发入门指南之搭建开发环境

编程语言 网络编程
SWT/JFace开发入门指南之搭建开发环境

步入SWT/JFace世界你还等什么

编程语言 网络编程
步入SWT/JFace世界你还等什么

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Eclipse中用SWT和JFace开发入门

编程语言 网络编程
Eclipse中用SWT和JFace开发入门

圆环状吊坠折纸diy

折纸 手工折纸 简易折纸 创意折纸
圆环状吊坠折纸diy

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

各种浏览器兼容问题

各种浏览器兼容问题

JAVA基础 语句标签的合法使用以及{}语句块到底有什么用?

JAVA基础 语句标签的合法使用以及{}语句块到底有什么用?
下拉加载更多内容 ↓