(修正)SWT标签背景透明

系统 1944 0
(修正)SWT标签背景透明


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

(修正)SWT标签背景透明
因为看见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

  



(修正)SWT标签背景透明

(修正)SWT标签背景透明


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论