`
yeshaoting
  • 浏览: 686240 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(修正)SWT标签背景透明

UI 
阅读更多
(修正)SWT标签背景透明


之前用下面方法,以为解决了背景透明问题.
label.setBackground(Display.getCurrent().getSystemColor(SWT.TRANSPARENCY_ALPHA));


因为看见SWT.TRANSPARENCY_ALPHA属性,以为是专为解决背景准备的,所以就没有去做更深入的研究.
结果发现在后续的UI设计的过程中,还是出现非透明效果,背景显现白色.才发现背景透明的假象是因为: SWT.TRANSPARENCY_ALPHA将背景置为白色,刚好上图的UI背景刚好也是白色的缘故.

解决方法:
shell.setBackgroundMode(int mode);
/*
参数mode有三个可选值:
SWT.INHERIT_FORCE,SWT.INHERIT_DEFAULT,SWT.INHERIT_NONE
其中前二个能达成背景透明效果,SWT.INHERIT_NONE则不行.
猜测: Shell默认的setBackgroundMode()方法参数可能是SWT.INHERIT_NONE.
*/


错解:
1. 网上有朋友可能是记错了方法,说用label的setBackgroundMode(SWT.INHERIT_FORCE)方法是不对的,Label对象没有此方法.

2. 也有说将SWT.INHERIT_FORCE属性放在Shell类实例化中,也是不对的.
因为Shell构造方法中的style只有下面这些值可用,其他属性会经过某种转换成下列的一种.
 * @see SWT#BORDER
 * @see SWT#CLOSE
 * @see SWT#MIN
 * @see SWT#MAX
 * @see SWT#RESIZE
 * @see SWT#TITLE
 * @see SWT#TOOL
 * @see SWT#NO_TRIM
 * @see SWT#SHELL_TRIM
 * @see SWT#DIALOG_TRIM
 * @see SWT#ON_TOP
 * @see SWT#MODELESS
 * @see SWT#PRIMARY_MODAL
 * @see SWT#APPLICATION_MODAL
 * @see SWT#SYSTEM_MODAL
 * @see SWT#SHEET





  • 大小: 22.7 KB
  • 大小: 23.9 KB
分享到:
评论
3 楼 yeshaoting 2011-05-16  

whatable 写道
为了label去搞shell的background mode不太好吧
Composite上有setBackgroundMode方法,可以借鉴图层的概念

   ----label ,label,....---- label会透明背景
  ---容纳Label的Composite----- setBackgroundMode(SWT.INHERIT_FORCE)
--------带有背景图的容器--------
  .
  .
  .
-------------Shell--------------

你的意思是说在Shell上加一个Composite带有背景图的容器,然后将label添加到该容器上,设置该容器setBackgroundMode(SWT.INHERIT_FORCE)代替设置Shell的setBackgroundMode(SWT.INHERIT_FORCE) ??
嗯...这么做确实合理一点.我写的代码很多时候都不够严谨.
2 楼 yeshaoting 2011-05-16  

whatable 写道
为了label去搞shell的background mode不太好吧
Composite上有setBackgroundMode方法,可以借鉴图层的概念

   ----label ,label,....---- label会透明背景
  ---容纳Label的Composite----- setBackgroundMode(SWT.INHERIT_FORCE)
--------带有背景图的容器--------
  .
  .
  .
-------------Shell--------------

你的意思是说在Shell上加一个Composite带有背景图的容器,然后将label添加到该容器上,设置该容器setBackgroundMode(SWT.INHERIT_FORCE)代替设置Shell的setBackgroundMode(SWT.INHERIT_FORCE) ??
嗯...这么做确实合理一点. 
1 楼 whatable 2011-05-16  
为了label去搞shell的background mode不太好吧
Composite上有setBackgroundMode方法,可以借鉴图层的概念

   ----label ,label,....---- label会透明背景
  ---容纳Label的Composite----- setBackgroundMode(SWT.INHERIT_FORCE)
--------带有背景图的容器--------
  .
  .
  .
-------------Shell--------------

相关推荐

    JAVA SWT 多标签浏览器

    JAVA SWT 多标签浏览器是一种利用Java编程语言和SWT(Standard Widget Toolkit)库构建的应用程序,它可以实现类似于浏览器的多标签界面,用户可以在同一程序中打开和管理多个网页。SWT是Eclipse基金会开发的一个...

    SWT中实现shell Canvas Composite等控件的背景透明

    SWT中实现shell Canvas Composite等控件的背景透明

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

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

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

    标题“swt-64.rar_64位swt_64的SWT_SWT64_swt.jar 64位_swt64位”表明这个压缩包包含了适用于64位Windows操作系统的SWT库。描述中提到的“64位windows操作系统使用的SWT库”进一步确认了这一点。 SWT的设计目标是...

    Eclipse SWT JFace核心应用_pdf_含标签_目录

    全书共分5篇,第1篇介绍了SWT产生的背景以及SWT的一些基本概念和基础知识。第2篇介绍了SWT基本控件的使用,以及事件处理、布局等SWT基本知识的应用。第3篇介绍了关于SWT的高级应用。第4篇介绍了JFace框架的知识及其...

    SWT源码 swt.jar

    SWT(Standard Widget Toolkit)是Eclipse项目的一个重要组成部分,它提供了一套用于构建图形用户界面(GUI)的API,与Java Swing不同,SWT基于操作系统原生的UI组件,因此能够实现更好的性能和与操作系统的集成。...

    Eclipse SWT 黑客帝国炫酷动态背景登录对话框

    在这个项目"黑客帝国炫酷动态背景登录对话框"中,开发者利用Eclipse SWT和JFace的技术,创造了一个独特的登录对话框。对话框的背景不再是静态的,而是动态的黑客帝国风格的字符雨效果,这种效果通常由快速下落的绿色...

    swt-api swt DOC

    【标签】"swt-api java swt GUI" 进一步确认了这个压缩包与Java语言、SWT库以及GUI编程紧密相关。SWT是一个开源的Java库,它允许开发者利用本地操作系统提供的图形资源,以获得更接近原生应用的性能和外观。API...

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

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

    swt工具文档 swt工具文档

    1. **Widget**: SWT中的基本构建块是Widget,它代表GUI中的一个元素,如按钮、标签或文本框。每个Widget都有自己的事件处理机制,可以通过监听器来响应用户的交互。 2. **Display**: Display是所有SWT组件的顶级...

    swt教程 有关SWT怎么应用

    在本文中,我们将深入探讨SWT(Standard Widget Toolkit)的应用,以及如何在Java应用程序中使用它。SWT是由IBM公司为Eclipse集成开发环境设计的一种图形用户界面(GUI)工具包,它通过JNI(Java Native Interface)...

    SWT_全接触 SWT_全接触 SWT_全接触

    根据给定的信息,本文将详细介绍SWT(Standard Widget Toolkit)的相关知识点,包括其背景、特点、与AWT/Swing的对比以及如何开始使用SWT。 ### SWT简介 SWT(Standard Widget Toolkit)是一个开放源码的原生GUI...

    SWT插件中文教程SWT常用方法

    3. **Label**:标签控件,用于显示静态文本信息。 4. **Shell**:窗口对象,它是所有SWT控件的容器。 5. **Composite**:复合控件,可以包含其他控件,用于组织复杂的布局。 6. **List** 和 **Tree**:列表和树形...

    swt.jar swt.jar swt.jar

    swt.jar swt.jar swt.jar swt.jar swt.jar

    swt table 实现换行

    EraseItem 事件用于清除 TableItem 的背景颜色。在这个事件处理器中,我们通过修改 `event.detail` 来控制是否清除前景色。 ```java case SWT.EraseItem: { event.detail &= ~SWT.FOREGROUND; break; } ``` ### ...

    SWT examples,SWT官方例子

    SWT examples,SWT官方例子:http://www.eclipse.org/swt/examples.php 该页面所要下载的例子 其中,swt的例子在\plugins\org.eclipse.swt.examples.source_3.7.0.v3740f.jar中

    SWT的官方压缩包

    `JFace`标签暗示了这个压缩包可能也包含了JFace库,JFace是基于SWT构建的,提供了如对话框、表视图、树视图等高级控件,以及数据绑定和事件处理机制,让开发者能够更专注于业务逻辑而不是底层GUI的实现。 `....

    swt的简单代码

    "源码"标签表明我们将讨论的是具体的编程代码,而"工具"则指SWT作为一种用于构建图形用户界面的工具包。 【SWT基础知识】 1. SWT概述:SWT是由Eclipse基金会维护的一个开源项目,它允许开发者创建与操作系统紧密...

    java swt自定义控件

    Java SWT(Standard Widget Toolkit)是Java平台上用于创建桌面应用程序的一个库,它提供了丰富的用户界面元素,如按钮、文本框、列表等。SWT是Eclipse IDE的基础,它通过与操作系统直接交互来提供本地化的图形用户...

Global site tag (gtag.js) - Google Analytics