SWT控制項

2021-08-24 20:06:04 字數 1306 閱讀 6776

繼承關係,widget為所有視窗元件的父類,control為所有控制項的父類,composite為容器控制項

widget-item/control

control-scrollble/button/label

scrollble-composite/text

composite-tree/table/canvas

canvas-decorations-shell

shell不允許被繼承

控制項可以攜帶使用者資料:getdata();setdata(object);getdata(string key);setdata(string key,object data)。新增或刪除使用者資料對控制項沒有影響。

資源使用原則:誰構造,誰釋放

使用color:color=new color(display,r,g,b);或display.getsystemcolor(int)獲取預定義樣式

使用font:font font=new font(display,"arial",12,swt.italic);

font=display.getsystemfont();獲取系統字型

使用image:

從inputstream構造image:image=new image(display,"c:\\graph.bmp");

使用imagedata構造:imagedata=new imagedata("c:\\graph.bmp");

image image=new image(display,imagedata);

獲取系統圖示,如錯誤、警告

image=display.getstemimage(swt.icon_error);

若自己構造的color『font、image一定要記得dispose,從系統獲取的不需要dispose。

使用region構造任意不規則視窗區域:

region region=new region(display);

region.add(new rectangle(a,b,c,d));

...//新增矩形區域

shell.setregion();

...region.dispose();記得釋放

使用系統托盤

tray tray=display.getsystemtray();

trayitem item=new trayitem(tray,swt.none);

item.setimage();

.settooltips...

.addlistener...

...item.dispose();//需要釋放,tray不需要釋放。

隱藏SWT控制項

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

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 當作為分隔符時,該分隔符凸...