`

SWT圆角窗口绘制

    博客分类:
  • SWT
阅读更多

SWT窗口如果要使用自己的不规则图片做背景,就需要手动编码去处理png图片中那些透明的部分。可以说是一像素一像素去处理,比较繁琐,所以不推荐透明区域太大的图片(影响重绘的进度),基本做一个圆角什么就可以了。

 

这里提供一个函数来处理一个图片区域的透明部分:

 

private Region handleTransparenceRegion(Image image, int offsetX, int offsetY) {    
    Region region = new Region();    
    final ImageData imageData = image.getImageData();    
    if (imageData.alphaData != null) {    
        Rectangle pixel = new Rectangle(0, 0, 1, 1);    
        for (int y = 0; y < imageData.height; y++) {    
            for (int x = 0; x < imageData.width; x++) {    
                if (imageData.getAlpha(x, y) != 255) {    
                    pixel.x = imageData.x + x + offsetX;     
                    pixel.y = imageData.y + y + offsetY;               
                    region.add(pixel);    
                }    
             }    
         }    
     }    
   return region;    
}   

 

首先获得整个界面的边界:

view plaincopy to clipboardprint?
Region allRegion = new Region();    
allRegion.add(0, 0, getSize().x, getSize().y); 

   

 

然后把透明处理之后的部分重新subtract一下:

allRegion.subtract(handleTransparenceRegion(img,0,0));  

 

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Ant_Yan/archive/2009/03/28/4031723.aspx

分享到:
评论
1 楼 javenwong 2017-07-14  
你好,我现在需要给一个Composite做圆角处理,不知道怎么得到一个圆角矩形的posArray,可否帮忙,QQ 42832899 谢谢!!

相关推荐

    SWT自定义圆形按钮

    SWT原生按钮不够美观,本案例实现自定义圆形按钮,代码可直接下载使用。

    SWT 基本 窗口 组件

    java SWT 基本窗口 组件 开发

    使Excel嵌入到SWT窗口中

    使Excel嵌入到SWT窗口中 知识点一:Eclipse版本和jdk版本的选择 在本例中,我们使用的是Eclipse 3.3.1版本和jdk 5.0版本。Eclipse是一个开源的集成开发环境(IDE),它支持多种编程语言,包括Java、C++、Python等...

    swt 窗口设计演示

    详细描述了SWT组件的实际应用 详细在说明书

    SWT.rar_SWT tutorial_java swt_swt 登陆窗口_swt tutori_swt-designer

    在设计这样的窗口时,你需要考虑布局管理,SWT提供了几种布局类型,如FillLayout、GridLayout、RowLayout和 MigLayout,它们帮助你控制组件在窗口中的排列方式。 "SWT designer"是一个强大的可视化设计工具,它允许...

    SWT创建Shell窗口

    本篇将详细讲解如何使用SWT来创建一个基本的Shell窗口。 首先,我们需要理解Shell在SWT中的含义。Shell是SWT中的顶级窗口,类似于其他GUI库中的Frame或Window。它是应用程序的主窗口,可以包含各种控件,如按钮、...

    java swt 窗口靠边自动隐藏

    在Java SWT中,窗口靠边自动隐藏功能是一种常见的需求,通常应用于桌面应用的界面设计,使得用户可以更高效地利用屏幕空间。 实现"Java SWT窗口靠边自动隐藏"的功能,我们需要了解SWT中的几个关键概念: 1. **...

    SWT JFace 按键、事件、监听

    - **SWT.Paint**:绘制控件时 - **SWT.Resize**:重新设置控件大小时 - **SWT.Selection**:选中控件时 通过以上介绍,我们可以看出SWT为开发者提供了一套全面的键盘和鼠标事件处理机制,这对于构建功能丰富且用户...

    SWT/JFACE客户端登录窗口例子

    在这个“SWT/JFACE 客户端登录窗口例子”中,我们可以预期会看到如何使用这两个库来创建一个基本的登录窗口。通常,这样的窗口会包含用户名和密码输入框,以及登录、取消等按钮。以下是一些可能涉及的知识点: 1. *...

    swt-64.rar_64位swt_64的SWT_SWT64_swt.jar 64位_swt64位

    SWT的设计目标是提供一个与平台相关的、高效的GUI库,它通过直接调用操作系统API来实现,而不是像Java Swing那样依赖Java抽象窗口工具包(AWT)和Java 2D。这种设计使得SWT应用程序在性能上通常优于Swing,并且可以...

    SWT隐藏任务栏图标

    在SWT中,窗口(Shell)是应用程序的基本容器,它在任务栏上显示为一个图标。默认情况下,Shell会自动创建并显示任务栏图标。要实现隐藏任务栏图标的功能,我们需要深入理解SWT的内部机制,并可能需要对源码进行一定...

    SWT API JAVA窗口程序开发AWT/Swing外的另种开发方式

    SWT,AWT/Swing外,java的另一种桌面窗口程序的开发包。做JAVA桌面窗口开发,我们有了更多的选择。此API是我自己生成的。对应的SWT版本是我网上下的最新的,版本是swt-3.4,里面没有API。网上也没找到最新版本的,我...

    swt省市级联的绘制,年份的级联

    在本主题中,"swt省市级联的绘制,年份的级联"涉及到的是如何使用SWT来创建一个级联选择器,让用户能够首先选择省份,然后根据所选省份展示对应的市,再进一步选择具体的年份。这种功能常见于许多需要用户输入地理...

    Java 圆角边框实例

    然而,这些方法无法直接创建带有圆角的边框,因此我们需要使用`java.awt.geom.RoundRectangle2D`类来绘制圆角矩形。 3. **绘制圆角边框**: 首先,我们需要创建一个自定义的组件,继承自JPanel,并覆盖`...

    swt背景拖动不将图片拖出窗口

    在SWT(Standard Widget Toolkit)中,开发GUI应用程序时,我们可能会遇到需要让背景图片能够随着窗口拖动而移动的情况,但同时要确保图片不会超出窗口边界。标题"swt背景拖动不将图片拖出窗口"正是针对这一需求提出...

    java swt自定义控件

    自定义控件的核心是重写`paintControl(PaintEvent e)`方法,这是SWT绘制控件的入口点。`PaintEvent`对象提供了绘图所需的信息,如画笔(`GC`)和绘图区域。通过`GC`,我们可以绘制各种图形,如线条、矩形、文本等。 ...

    java SWT教程

    SWT利用JNI(Java Native Interface)调用操作系统内核API,实现了Java应用程序与本地窗口系统的直接交互,从而达到接近原生应用的性能。SWT提供了各种基本的UI组件,如按钮、文本框、列表等。 【JFace简介】 JFace...

    SWT配置 SWT配置 SWT配置 SWT配置 SWT配置

    ### SWT配置详解 #### 一、SWT简介与配置的重要性 SWT(Standard Widget Toolkit)是一种用于构建基于Java的应用程序的图形用户界面工具包。它提供了丰富的控件集,并能够生成本地外观和感觉的界面,这使得应用在...

    简单SWT源代码,有那个简单的跳转,关闭,滑动窗口

    有简单的SWT代码。。。。。。。。。。。

    swt教程 有关SWT怎么应用

    SWT的主要特点是运行速度快,因为它直接调用操作系统API,而不是依赖于Java的抽象窗口工具包(AWT)或JavaFX。JFace是建立在SWT之上的一个高级GUI库,它简化了GUI编程,提供了一些高级功能,比如视图和控制器模型,...

Global site tag (gtag.js) - Google Analytics