隱藏SWT控制項

2021-09-02 03:01:36 字數 898 閱讀 3646

隱藏swt控制項

有時候需要根據使用者的輸入隱藏某些控制項,呼叫control.setvisible(false)並不能夠消除控制項占用的空間。解決的方法如下:

控制項的parent使用gridlayout,控制項使用griddata

((griddata) control.getlayoutdata()).exclude = true;

control.setvisible(false);

control.getparent().layout()

如果介面布局比較複雜,使用了多個容器的話,可能需要呼叫這些容器的layout()

同樣如果要顯示控制項的話,需要以下步驟

((griddata) control.getlayoutdata()).exclude = false;

control.setvisible(true);

control.getparent().layout()

// 必須同時設定這兩個屬性才能實現隱藏,顯示也一樣

// 得到griddata

griddata gd = (griddata) reportgroup.getlayoutdata();

gd.exclude = !gd.exclude;

// 得到visible

boolean visible = reportgroup.getvisible();visible = !visible;

reportgroup.setvisible(visible);

reportgroup.getparent().layout();

設定label的背景色為透明 對label所在的shell做設定

shell.setbackgroundmode(swt.inherit_default);  

SWT控制項

繼承關係,widget為所有視窗元件的父類,control為所有控制項的父類,composite為容器控制項 widget item control control scrollble button label scrollble composite text composite tree tabl...

SWT的標籤控制項

文字標籤 label label1 new label shell,swt.none label1.settext 這是文字標籤 分割線標籤 label label2 new label shell,swt.separator swt.vertical swt.shadow etched out 分...

SWT常用控制項樣式

label seperator 該label作為乙個分隔符,此時不能向該label物件設定文字或 horizontal 當作為分隔符時,該分隔符為水平 vertical 當作為分隔符時,該分隔符為垂直 shadow in 當作為分隔符時,該分隔符凹陷 shadow out 當作為分隔符時,該分隔符凸...