我們知道jlist
中的內容其實就是乙個乙個jlabel
組成的,因此只需設定jlabel
中的透明度就行了。但jlabel
只有乙個setopque
方法,而且還是讓元件透明而不是其中的文字透明的,我現在想讓文字有透明度怎麼辦?
我們知道swing是支援html的,如果你想讓沒有使用html標籤的文字透明,些許還好辦,自定義乙個labelui
,重寫paintenabledtext
或paintdisabledtext
就行了,例如下面的**
public
class
labelui
extends
basiclabelui
@override
protected
void
paintenabledtext
(jlabel l, graphics g, string s,
int textx,
int texty)
}
通過設定畫筆的透明度來讓繪製的文字透明即可,短短幾行**就實現了。
如果文字帶html標籤,又想設定透明度,又想保留html標籤怎麼辦呢?能否通過html中的rgba
或opacity
設定?很遺憾,回答是不能。swing只支援html3.2及以下的版本,這個版本是非常老的了,根本不支援文字的透明度設定,再加上剛剛的方法設定帶html的文字是無效的,只好另尋思路…
能否直接讓整個jlabel
透明,也許真的是個好方法,看下面的**
public
class
labelui
extends
basiclabelui
@override
public
void
paint
(graphics g, jcomponent c)
這**跟上面就是方法不一樣,乙個是paintenabledtext
乙個是paint
,paint
與它不同的地方是paint
是繪製整個元件。不能讓文字透明,換個思路,讓jlabel
透明不就讓文字透明了嗎,嘿嘿!
這個事情告訴我們一定要善於換個角度思考問題!
最終我實現的效果如下:
css 設定透明度
要設定某一元素的背景為透明,在 chrome firefox opera 下是這樣的 css background color rgba 0,0,0,0.4 rgba 中的最後乙個引數 0.4 就是想要的透明度,範圍在0 1之間。在 ie 中一般是這樣的 css background color r...
CSS設定背景透明度
控制 如下 各引數含義如下 enabledenabled設定或檢索濾鏡是否啟用。stylestyle設定或檢索div背景透明漸變的樣式。opacityopacity設定或檢索透明漸變的開始透明度。finishopacityfinishopacity設定或檢索div背景透明漸變的結束透明度。start...
osg BlendFunc來設定透明度
osg blendfunc介紹 混合是什麼呢?混合就是把兩種顏色混在一起。具體一點,就是把某一畫素位置原來的顏色和將要畫上去的顏色,通過某種方式混在一起,從而實現特殊的效果。假設我們需要繪製這樣乙個場景 透過紅色的玻璃去看綠色的物體,那麼可以先繪製綠色的物體,再繪製紅色玻璃。在繪製紅色玻璃的時候,利...