(修正)SWT標(biāo)簽背景透明
之前用下面方法,以為解決了背景透明問題.
因?yàn)榭匆奡WT.TRANSPARENCY_ALPHA屬性,以為是專為解決背景準(zhǔn)備的,所以就沒有去做更深入的研究.
結(jié)果發(fā)現(xiàn)在后續(xù)的UI設(shè)計(jì)的過程中,還是出現(xiàn)非透明效果,背景顯現(xiàn)白色.才發(fā)現(xiàn)背景透明的假象是因?yàn)? SWT.TRANSPARENCY_ALPHA將背景置為白色,剛好上圖的UI背景剛好也是白色的緣故.
解決方法:
錯(cuò)解:
1. 網(wǎng)上有朋友可能是記錯(cuò)了方法,說用label的setBackgroundMode(SWT.INHERIT_FORCE)方法是不對(duì)的,Label對(duì)象沒有此方法.
2. 也有說將SWT.INHERIT_FORCE屬性放在Shell類實(shí)例化中,也是不對(duì)的.
因?yàn)镾hell構(gòu)造方法中的style只有下面這些值可用,其他屬性會(huì)經(jīng)過某種轉(zhuǎn)換成下列的一種.
之前用下面方法,以為解決了背景透明問題.
label.setBackground(Display.getCurrent().getSystemColor(SWT.TRANSPARENCY_ALPHA));

因?yàn)榭匆奡WT.TRANSPARENCY_ALPHA屬性,以為是專為解決背景準(zhǔn)備的,所以就沒有去做更深入的研究.
結(jié)果發(fā)現(xiàn)在后續(xù)的UI設(shè)計(jì)的過程中,還是出現(xiàn)非透明效果,背景顯現(xiàn)白色.才發(fā)現(xiàn)背景透明的假象是因?yàn)? SWT.TRANSPARENCY_ALPHA將背景置為白色,剛好上圖的UI背景剛好也是白色的緣故.
解決方法:
shell.setBackgroundMode(int mode); /* 參數(shù)mode有三個(gè)可選值: SWT.INHERIT_FORCE,SWT.INHERIT_DEFAULT,SWT.INHERIT_NONE 其中前二個(gè)能達(dá)成背景透明效果,SWT.INHERIT_NONE則不行. 猜測(cè): Shell默認(rèn)的setBackgroundMode()方法參數(shù)可能是SWT.INHERIT_NONE. */
錯(cuò)解:
1. 網(wǎng)上有朋友可能是記錯(cuò)了方法,說用label的setBackgroundMode(SWT.INHERIT_FORCE)方法是不對(duì)的,Label對(duì)象沒有此方法.
2. 也有說將SWT.INHERIT_FORCE屬性放在Shell類實(shí)例化中,也是不對(duì)的.
因?yàn)镾hell構(gòu)造方法中的style只有下面這些值可用,其他屬性會(huì)經(jīng)過某種轉(zhuǎn)換成下列的一種.
* @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

更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
