创建非矩形窗口,模拟透明 : 命令行界面显示 « SWT-JFace-Eclipse « Java

En
Java
1. 图形用户界面
2. 三维图形动画
3. 高级图形
4. 蚂蚁编译
5. Apache类库
6. 统计图
7. 
8. 集合数据结构
9. 数据类型
10. 数据库JDBC
11. 设计模式
12. 开发相关类
13. EJB3
14. 电子邮件
15. 事件
16. 文件输入输出
17. 游戏
18. 泛型
19. GWT
20. Hibernate
21. 本地化
22. J2EE平台
23. 基于J2ME
24. JDK-6
25. JNDI的LDAP
26. JPA
27. JSP技术
28. JSTL
29. 语言基础知识
30. 网络协议
31. PDF格式RTF格式
32. 映射
33. 常规表达式
34. 脚本
35. 安全
36. Servlets
37. Spring
38. Swing组件
39. 图形用户界面
40. SWT-JFace-Eclipse
41. 线程
42. 应用程序
43. Velocity
44. Web服务SOA
45. 可扩展标记语言
Java 教程
Java » SWT-JFace-Eclipse » 命令行界面显示屏幕截图 
创建非矩形窗口,模拟透明
创建非矩形窗口,模拟透明


/*
 * Create a non-rectangular shell to simulate transparency
 
 * For a list of all SWT example snippets see
 * http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/dev.html#snippets
 */
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.graphics.Image;
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 Snippet180 {

  public static void main(String[] args) {
    Display display = new Display();
    final Image image = display.getSystemImage(SWT.ICON_WARNING);
    // Shell must be created with style SWT.NO_TRIM
    final Shell shell = new Shell(display, SWT.NO_TRIM | SWT.ON_TOP);
    shell.setBackground(display.getSystemColor(SWT.COLOR_RED));
    // define a region
    Region region = new Region();
    Rectangle pixel = new Rectangle(0011);
    for (int y = 0; y < 200; y += 2) {
      for (int x = 0; x < 200; x += 2) {
        pixel.x = x;
        pixel.y = y;
        region.add(pixel);
      }
    }
    // define the shape of the shell using setRegion
    shell.setRegion(region);
    Rectangle size = region.getBounds();
    shell.setSize(size.width, size.height);
    shell.addPaintListener(new PaintListener() {
      public void paintControl(PaintEvent e) {
        Rectangle bounds = image.getBounds();
        Point size = shell.getSize();
        e.gc.drawImage(image, 00, bounds.width, bounds.height, 10,
            10, size.x - 20, size.y - 20);
      }
    });
    shell.open();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch())
        display.sleep();
    }
    region.dispose();
    display.dispose();
  }
}


           
       
Related examples in the same category
1. SWT窗口:创建非矩形窗口SWT窗口:创建非矩形窗口
2. 打开一个shell窗口最大化(全屏)打开一个shell窗口最大化(全屏)
3. 打开一个shell窗口最小化( iconified )打开一个shell窗口最小化( iconified )
4. 非矩形窗SWT非矩形窗SWT
5. 控件试验
6. HelloWorld 示范HelloWorld 示范
7. 环窗口环窗口
8. 窗口风格窗口风格
9. 显示不同风格的装饰显示不同风格的装饰
10. 子窗口演示子窗口演示
11. 子窗口演示2子窗口演示2
12. 子窗口演示3子窗口演示3
13. 窗口样式范例
14. 专业窗口专业窗口
15. 复杂窗口为例复杂窗口为例
16. 复合窗口例2复合窗口例2
17. SWT综合面板类SWT综合面板类
18. 最简单的SWT最简单的SWT
19. 防止窗口关闭(提示用户)防止窗口关闭(提示用户)
20. 在SWT创建一个启动画面在SWT创建一个启动画面
21. Display example snippet: get the bounds and client area of a displayDisplay example snippet: get the bounds and client area of a display
22. 显示:按下按钮停止重复计时器显示:按下按钮停止重复计时器
23. 创建一个重复计时器(每500毫秒)创建一个重复计时器(每500毫秒)
24. 创建两个计时器( 5000毫秒, 2000毫秒)创建两个计时器( 5000毫秒, 2000毫秒)
25. 建立和处置子面板控件建立和处置子面板控件
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.