定制 SWT/RCP 界面:如何编写一个漂亮的 SWT/RCP 界面
2010-04-26 00:00:00 来源:WEB开发网SWT 中有很多种方法得到 ImageData 实例。可以通过 ImageData 的构造函数初始化一个 ImageData 实例;也可以通过 ImageLoader 来得到 ImageData 实例;还可以通过已有的 Image 对象来获得。
通过图片可以获得如下窗体外形:
图 8. 图像外形多边形窗口
清单 6. 示例全部代码
private static Region getBackRegionFromImage(Display display, String image){
ImageLoader loader = new ImageLoader();
ImageData[] imageData = loader.load(image);
Region region = new Region(display);
ImageData data = imageData[0];
ImageData mask = data.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 = data.x + x;
pixel.y = data.y + y;
region.add(pixel);
}
}
}
return region;
}
public static void main(String[] args) {
String backImage="icons/back.gif";
final Display display = new Display();
final Shell shell = new Shell(display, SWT.NO_TRIM | SWT.ON_TOP);
//
Region region = getBackRegionFromImage(display, backImage);
//
shell.setRegion(region);
Rectangle size = region.getBounds();
shell.setSize(size.width, size.height);
//
ImageLoader loader = new ImageLoader();
ImageData[] imageData = loader.load(backImage);
Image image = new Image(null, imageData[0]);
shell.setBackgroundImage(image);
//
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
image.dispose();
region.dispose();
display.dispose();
}
- ››定制个性化的对话框窗口类
- ››定制 SWT/RCP 界面:如何编写一个漂亮的 SWT/RCP ...
- ››定制基于 Visual studio 2005 平台 Windows CE(AR...
- ››定制版黑雨 blackra1n 越狱3.1.2 全系 iPhone
- ››RCP客户端实现保存不同用户的界面状态
- ››定制 Eclipse RCP 应用程序,第 1 部分: 可与 SWT...
- ››SWT 全接触
- ››定制AIX操作系统的shell环境
- ››定制任务栏上的系统菜单
- ››SWT/JFace开发入门指南之搭建开发环境
- ››定制一个灵活的struts框架
- ››RCPII:扩展通用工作台补充—小的改进
更多精彩
赞助商链接