用SWT做圆形控件
来源:互联网 发布:小车巡线算法 编辑:程序博客网 时间:2024/05/16 23:41
public static void main(String[] args) {
final Display display = new Display();
final Shell shell = new Shell(display, SWT.NO_TRIM);
Region region = new Region();
region.add(circle(20, 500, 300));
shell.setRegion(region);
// shell.setBackground(display.getSystemColor(SWT.COLOR_DARK_GRAY));
shell.setBackgroundImage(new Image(shell.getDisplay(),"C://Program Files//Movie Maker//Shared//Sample2.jpg"));
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);
}
}
};
shell.addListener(SWT.KeyDown, l);
shell.addListener(SWT.MouseDown, l);
shell.addListener(SWT.MouseMove, l);
shell.addListener(SWT.Paint, l);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
region.dispose();
display.dispose();
}
static int[] circle(int r, int offsetX, int offsetY) {
int[] polygon = new int[8 * r + 4];
// x^2 + y^2 = r^2
for (int i = 0; i < 2 * r + 1; i++) {
int x = i - r;
int y = (int)Math.sqrt(r*r - x*x);
polygon[2*i] = offsetX + x;
polygon[2*i+1] = offsetY + y;
polygon[8*r - 2*i - 2] = offsetX + x;
polygon[8*r - 2*i - 1] = offsetY - y;
}
return polygon;
}
- 用SWT做圆形控件
- SWT做的一个日历控件
- 用swt做JAVA界面
- 用swt做JAVA界面
- 用热点链接做圆形按钮。
- 用第三方控件实现圆形进度条
- 一个非常好用的自定义圆形控件
- 一个很好用的圆形头像控件.
- 自定义圆形圆形控件CircleImageview
- SWT控件速查
- 自定义的SWT控件
- swt控件的使用
- swt日期控件
- SWT 中控件只读
- SWT的标签控件
- 如何隐藏SWT控件
- swt自定义控件
- SWT常用控件样式
- Symbian RFileWriteStream和RFile 以追加的方式 读写文件操作
- 字符串输入输出
- SQLServer性能优化工具
- 编程梦
- 网站开发人员常去的10个专业网站
- 用SWT做圆形控件
- 法线贴图
- 字符串技巧——字符串对称位置
- QTP模拟鼠标和键盘事件方法
- mysql数据同步原理
- 程序开发中我想要什么?
- a:hover伪类在IE6下的问题
- 艾宾浩斯记忆曲线
- grep用法