宸ュ叿綆?/A>錛圫tandard Widget Toolkit錛?A class=bluekey target=_blank>SWT錛夊拰 JFace 搴撴潵寮鍙戠敤浜?Eclipse 鐜鐨?A class=bluekey target=_blank>鍥懼艦鐢ㄦ埛鐣岄潰錛岃屼笖榪樺彲浠ュ皢瀹冧滑鐢ㄤ簬寮鍙戝崟鐙殑 GUI 鏈満搴旂敤紼嬪簭銆傚湪鏈枃涓紝鎴戝皢浠嬬粛涓浜涘熀鏈殑 SWT錛堝熀鏈?GUI 瀵硅薄鐨勫悕縐幫級綾誨瀷錛屽茍灞曠ず濡備綍緇煎悎浣跨敤瀹冧滑鏉?A class=bluekey target=_blank>鍒涘緩鏈夌敤鐨勫簲鐢ㄧ▼搴忋?
銆銆鍏充簬 Eclipse銆丼WT 鍜?JFace
銆銆姝e Eclipse 鐨?Web 绔欑偣涓婃墍鎻愬埌鐨勶紝Eclipse 鏄竴縐嶉氱敤宸ュ叿騫沖彴銆傚畠鏄竴涓?A class=bluekey target=_blank>寮鏀?/A>鐨勩佸彲鐢ㄤ簬浠諱綍涓滆タ鐨勫彲鎵╁睍 IDE錛屾病浠涔堢壒鍒箣澶勶紝瀹冧負宸ュ叿寮鍙戜漢鍛樻彁渚涗簡鐏墊椿鎬т互鍙婂杞歡鎶鏈殑鎺у埗銆?
銆銆Eclipse 涓哄紑鍙戜漢鍛樻彁渚涗簡鐢熶駭澶ч噺 GUI 椹卞姩鐨勫伐鍏峰拰搴旂敤紼嬪簭鐨勫熀紜銆傝岃繖欏瑰姛鑳界殑鍩虹灝辨槸 GUI 搴?SWT 鍜?JFace銆?
銆銆SWT 鏄竴涓簱錛屽畠鍒涘緩浜咼ava 鐗堢殑鏈湴涓繪満鎿嶄綔緋葷粺 GUI 鎺т歡銆傚畠渚濊禆浜庢湰鏈哄疄鐜般傝繖鎰忓懗鐫鍩轟簬 SWT 鐨勫簲鐢ㄧ▼搴忓叿鏈変互涓嬪嚑涓?A class=bluekey target=_blank>鍏抽敭鐗規э細
瀹冧滑鐨勫瑙傘佽涓哄拰鎵ц綾諱技浜庘滄湰鏈衡濆簲鐢ㄧ▼搴忋?
鎵鎻愪緵鐨勭獥鍙e皬閮ㄤ歡錛坵idget錛夊弽鏄犱簡涓繪満鎿嶄綔緋葷粺涓婃彁渚涚殑紿楀彛灝忛儴浠訛紙緇勪歡鍜屾帶浠訛級銆?
涓繪満 GUI 搴撶殑浠諱綍鐗規畩琛屼負閮藉湪 SWT GUI 涓緱鍒板弽鏄犮?
銆銆榪欎簺鐩爣浣垮緱 SWT 涓嶅悓浜?Java 鎶鏈殑 Swing錛孲wing 鐨勮璁$洰鏍囨槸娑堥櫎鎿嶄綔緋葷粺鐨勫樊寮傘?
銆銆SWT 搴撳弽鏄犱簡涓繪満鎿嶄綔緋葷粺鐨勫熀鏈獥鍙e皬閮ㄤ歡銆傚湪璁稿鐜涓嬶紝榪欑鏂規硶澶綆綰с侸Face 搴撴湁鍔╀簬鍚?SWT 搴旂敤紼嬪簭涓坊鍔犲ぇ閲忔湇鍔°侸Face 騫舵病鏈夐殣钘?SWT錛屽畠鍙槸鎵╁睍浜?SWT銆傛濡傛偍灝嗗湪榪欎竴緋誨垪鐨勫悗闈㈤儴鍒嗕腑鐪嬪埌鐨勶紝SWT 鏈閲嶈鐨勬墿灞曚箣涓鏄紝灝嗗簲鐢ㄧ▼搴忕殑鏁版嵁妯″瀷涓庢樉紺哄強鏇存敼瀹冪殑 GUI 闅旂寮鏉ャ?BR>
銆銆鍦ㄥ紑濮嬩箣鍓嶏紝鎴戦渶瑕佷粙緇嶄竴浜?SWT 鏈錛?
Widget 鈥斺?鍩烘湰鐨?SWT GUI 緇勪歡錛堢被浼間簬 Java AWT 涓殑 Component 鍜?Swing 涓殑 JComponent錛夈俉idget 鏄竴涓?A class=bluekey target=_blank>鎶借薄綾?/A>銆?
Control 鈥斺?鎷ユ湁鎿嶄綔緋葷粺鐨勫絳夌墿鐨勭獥鍙e皬閮ㄤ歡錛堟崲鍙ヨ瘽璇達紝鍦ㄦ搷浣滅郴緇熶腑鍏鋒湁鍚屼竴韜喚錛夈侰ontrol 鏄竴涓娊璞$被銆?
Composite 鈥斺?鍖呭惈鍏朵粬鎺т歡鐨勬帶浠訛紙綾諱技浜?Java AWT 涓殑 Container 鍜?Swing 涓殑 JPanel錛夈?
Item 鈥斺?鍏朵粬鎺т歡鍖呭惈鐨勭獥鍙e皬閮ㄤ歡錛堣鎺т歡鍙兘涓嶆槸澶嶅悎鎺т歡錛夛紝姣斿鍒楄〃鍜岃〃銆傛敞鎰忥紝鍖呭惈涓浜涢」鐨勬帶浠跺緢灝戝寘鍚叾浠栨帶浠訛紝鍙嶄箣浜︾劧銆侷tem 鏄竴涓娊璞$被銆?
銆銆 榪欎簺紿楀彛灝忛儴浠惰瀹夋帓鍦ㄧ戶鎵垮眰嬈?A class=bluekey target=_blank>緇撴瀯涓傚弬瑙佸浘 1銆佸浘 2 鍜屽浘 3錛屼簡瑙e畠浠槸濡備綍瀹夋帓鐨勩傚湪鍥?2 涓紝Basic1 綾繪槸鏉ヨ嚜鏈枃鐨勭被錛岃屽叾浠栨墍鏈夌被閮芥槸鏍囧噯鐨?SWT 紿楀彛灝忛儴浠躲?
鍥?1. SWT Widget 鏍?/B>
鍥?2. SWT Composite 鏍?/B>
鍥?3. SWT Item 鍒楄〃
娉ㄦ剰錛孍clipse 鍏鋒湁璺ㄥ鉤鍙扮壒鎬э紙鍥犳鍙互鍦ㄨ澶氭搷浣滃鉤鍙頒笂榪愯錛夛紝鏈枃鍩轟簬 Eclipse 鐨?Microsoft? Windows? 鐗堟湰銆傚洜姝わ紝鏈枃鍖呭惈鐨勬瘡涓緥瀛愰兘搴旇鑳藉涓嶅姞浠諱綍鏇存敼鍦板湪鍏朵粬騫沖彴涓婁嬌鐢ㄣ傝繕瑕佹敞鎰忕殑鏄紝鏈枃鏄熀浜?Eclipse V3.0 鐨勩侲clipse V3.1 涓坊鍔犱簡灝戣 GUI 紿楀彛灝忛儴浠剁被鍨嬪拰鐗規с?
銆銆鍩烘湰鎺т歡
銆銆鍑犱箮鎵鏈?SWT GUI 閮芥槸浠庢煇浜涘熀紜閮ㄥ垎寮濮嬪垱寤虹殑銆傛墍鏈?SWT 紿楀彛灝忛儴浠墮兘鍙互鍦?org.eclipse.swt.widget
鎴?org.eclipse.swt.custom
鍖呬腑鎵懼埌銆傦紙涓浜?Eclipse 鎻掍歡榪樺湪鍏朵粬鍖呬腑鎻愪緵浜嗗畾鍒剁殑紿楀彛灝忛儴浠躲傦級紿楀彛灝忛儴浠跺寘涓寘鍚竴浜涘熀浜庢搷浣滅郴緇熸帶浠剁殑鎺т歡錛岃屽畾鍒跺寘涓垯鍖呭惈涓浜涜秴鍑烘搷浣滅郴緇熸帶浠墮泦涔嬪鐨勬帶浠躲備竴浜涘畾鍒剁殑杞歡鍖呮帶浠剁被浼間簬紿楀彛灝忛儴浠跺寘涓殑鎺т歡銆備負浜嗛伩鍏嶅懡鍚嶅啿紿侊紝瀹氬埗鎺т歡鐨勫悕縐伴兘鏄互鈥淐鈥濆紑濮嬬殑錛堜緥濡傦紝姣旇緝 CLabel 涓?Label錛夈?
銆銆鍦?SWT 涓紝鎵鏈夋帶浠訛紙闄や簡涓浜涢珮綰ф帶浠訛紝姣斿 shell錛屽皢鍦ㄥ悗闈㈣繘琛岃璁猴級鍦ㄥ垱寤虹殑鏃跺欓兘蹇呴』鏈変竴涓埗鎺т歡錛堜竴涓鍚堝疄渚嬶級銆傚湪鍒涘緩鐨勬椂鍊欙紝榪欎簺鎺т歡琚嚜鍔ㄢ滄坊鍔犫濆埌鐖舵帶浠朵腑錛岃繖涓庡繀欏繪槑紜坊鍔犲埌鐖舵帶浠朵腑鐨?AWT/Swing 涓殑鎺т歡鏈夋墍涓嶅悓錛岃嚜鍔ㄦ坊鍔犱駭鐢熶簡涓縐嶁滆嚜涓婅屼笅鈥濆湴鏋勯?GUI 鐨勬柟娉曘傝繖鏍鳳紝鎵鏈夋帶浠墮兘鍙互閲囩敤涓涓鍚堢埗鎺т歡錛堟垨鑰呬竴涓瓙綾伙級浣滀負鏋勯犲嚱鏁扮殑鍙傛暟銆?BR>
銆銆澶у鏁版帶浠墮兘鏈変竴浜涘繀欏誨湪鍒涘緩鏃惰緗殑鏍囪閫夐」銆傚洜姝わ紝澶у鏁版帶浠惰繕鏈夊彟澶栦竴涓瀯閫犲嚱鏁板弬鏁幫紝鎴戜滑閫氬父縐頒箣涓烘牱寮忥紝璇ュ弬鏁版彁渚涗簡璁劇疆榪欎簺閫夐」鐨勬爣璁般傛墍鏈夎繖浜涘弬鏁板奸兘鏄?static final int
錛屽茍涓旈兘鏄湪 org.eclipse.swt
鍖呯殑 SWT
綾諱腑瀹氫箟鐨勩傚鏋滀笉闇瑕佷換浣曞弬鏁幫紝鍒欏彲浠ヤ嬌鐢?SWT.NONE
鍊箋?
銆銆鏍囩
銆銆鏍囩鍙兘鏄渶綆鍗曠殑鎺т歡錛屾爣絳?琚敤浜庢樉紺虹函鏂囨湰錛堟病鏈夐鑹層佺壒孌婂瓧浣撴垨鏍峰紡鐨勬枃鏈級鎴栫О涓哄浘鏍囩殑灝忓浘鍍忋傛爣絳句笉鎺ュ彈鐒︾偣錛堟崲鍙ヨ瘽璇達紝鐢ㄦ埛涓嶈兘閫氳繃 Tab 閿垨榧犳爣縐誨姩鍒版爣絳撅級錛屽洜姝わ紝鏍囩鏃犳硶浜х敓杈撳叆浜嬩歡銆?BR>
銆銆娓呭崟 1 灞曠ず浜嗗浣曞垱寤轟竴涓畝鍗曠殑鏂囨湰鏍囩銆?BR>
銆銆娓呭崟 1. 鍒涘緩涓涓甫鏂囨湰鐨勬爣絳?/B>
import org.eclipse.swt.widget.*;
:
Composite parent = ...;
:
// create a center aligned label
Label label = new Label(parent, SWT.CENTER);
label.setText("This is the label text");
|
銆銆娉ㄦ剰錛岃鏂囨湰鏄噰鐢ㄤ笉鍚屼簬鏋勯犲嚱鏁扮殑鍗曠嫭鐨勬柟娉曡緗殑銆傝繖鏄墍鏈?SWT 鎺т歡鐨勪竴涓吀鍨嬭薄寰併傚彧鏈夌埗鎺т歡鍜屾牱寮忔槸鍦ㄦ瀯閫犲嚱鏁頒腑璁劇疆鐨勶紝鍏朵粬鎵鏈夊睘鎬ч兘鏄湪宸插垱寤虹殑瀵硅薄涓婅緗殑銆?
銆銆鐢變簬騫沖彴鐨勯檺鍒訛紝鏍囧噯鏍囩鎺т歡涓嶈兘鍚屾椂鎷ユ湁鏂囨湰鍜屽浘鏍囥備負浜嗘敮鎸佸悓鏃舵嫢鏈夋枃鏈拰鍥炬爣錛屽彲浠ヤ嬌鐢?CLabel 鎺т歡錛屽娓呭崟 2 涓墍紺恒?BR>銆
銆銆娓呭崟 2. 鍒涘緩涓涓寘鍚枃鏈拰鍥懼儚鐨勬爣絳?/B>
import com.eclipse.swt.graphics.*;
import org.eclipse.swt.widget.*;
import org.eclipse.swt.custom.*;
:
Composite parent = ...;
Image image = ...;
:
// create a left aligned label with an icon
CLabel Clabel = new CLabel(parent, SWT.LEFT);
label.setText("This is the imaged label text"");
label.setImage(image);
|
銆銆鏂囨湰
銆銆鍦ㄦ爣絳炬樉紺烘枃鏈殑鍚屾椂錛屾偍鏃跺父榪樻兂鍏佽鐢ㄦ埛鎻掑叆鏂囨湰銆傛枃鏈?鎺т歡灝辨槸鐢ㄤ簬姝ょ洰鐨勭殑銆傛枃鏈彲浠ユ槸鍗曡鐨勶紙涓涓枃鏈瓧孌碉級錛屼篃鍙互鏄琛岀殑錛堜竴涓枃鏈尯鍩燂級銆傛枃鏈繕鍙互鏄彧璇葷殑銆傛枃鏈瓧孌典腑娌℃湁鎻忚堪錛屽洜姝わ紝甯稿父閫氳繃鏍囩鎺т歡澶勭悊瀹冧滑錛屼互紜畾瀹冧滑鐨勭敤閫斻傛枃鏈帶浠惰繕鍙互鍖呭惈涓涓滃伐鍏鋒彁紺衡濓紝鎻愪緵鍏充簬鎺т歡鐢ㄩ旂殑淇℃伅錛堟墍鏈夋帶浠墮兘鏀寔榪欎竴鐗規э級銆?
銆銆娓呭崟 3 鏄劇ず浜嗗浣曚嬌鐢ㄥ厑璁鎬嬌鐢ㄧ殑鏈夐檺鏁伴噺鐨勭壒鎬ф潵鍒涘緩涓涓畝鍗曠殑鏂囨湰瀛楁銆傞夋嫨榛樿鏂囨湰鏄負浜嗕究浜庢摝闄ゃ傘
銆銆娓呭崟 3. 鍒涘緩涓涓寘鍚夊畾鐨勯粯璁ゆ枃鏈拰涓涓檺鍒舵潯浠剁殑鏂囨湰
import org.eclipse.swt.widget.*;
:
Composite parent = ...;
:
// create a text field
Text name = new Text(parent, SWT.SINGLE);
name.setText("<none>");
name.setTextLimit(50);
name.setToolTipText("Enter your name -- Last, First");
name.selectAll(); // enable fast erase
|
銆銆鎸夐挳
銆銆閫氬父錛屾偍甯屾湜鐢ㄦ埛鎸囧嚭搴旇浣曟椂榪涜鏌愰」鎿嶄綔銆傛渶甯歌鐨勫仛娉曟槸浣跨敤鎸夐挳 鎺т歡銆傚瓨鍦ㄤ互涓嬪嚑縐嶆牱寮忕殑鎸夐挳錛?
- ARROW 鈥斺?鏄劇ず涓轟竴涓寚鍚戜笂銆佷笅銆佸乏銆佸彸鏂瑰悜鐨勭澶淬?
- CHECK 鈥斺?宸叉爣璁扮殑澶嶉夋爣璁般?
- FLAT 鈥斺?娌℃湁鍑歌搗澶栬鐨勬寜閽?
- PUSH 鈥斺?鐬椂鎸夐挳錛堟渶甯歌鐨勪簨浠舵簮錛夈?
- RADIO 鈥斺?鍏鋒湁鎺掍粬鎬х殑綺樻ф爣璁幫紙sticky mark錛夛紝鍏朵粬鎵鏈夊崟閫夋寜閽兘鍦ㄧ浉鍚岀殑緇勪腑銆?
- TOGGLE 鈥斺?涓涓矘鎬ф寜閽?
銆銆娓呭崟 4 鍒涘緩浜嗕竴涓淐lear鈥濇寜閽細銆銆
銆銆娓呭崟 4. 鍒涘緩涓涓寜閽?/B>
import org.eclipse.swt.widget.*;
:
Composite parent = ...;
:
// create a push button
Button clear = new Button(parent, SWT.PUSH);
clear.setText("Clea&r");
|
銆銆鍚嶇О涓殑 &
瀵艱嚧鍒╃敤绱ф帴鐫鐨勪竴涓瓧姣嶅垱寤轟竴涓姞閫熷櫒錛屽厑璁擱氳繃 Ctrl+<瀛楁瘝> 欏哄簭鐨勬柟寮忔寜涓嬫寜閽紙鎺т歡欏哄簭鐢變富鏈烘搷浣滅郴緇熷喅瀹氾級銆?
銆銆浜嬩歡鐩戝惉鍣?/B>
銆銆閫氬父錛屾偍鍙兘鎯沖湪閫夋嫨鎸夐挳錛堢壒鍒槸鏌愮鎺ㄥ紡鎸夐挳錛夌殑鏃跺欐墽琛屼竴浜涙搷浣溿傛偍鍙互閫氳繃鍚戣鎸夐挳娣誨姞涓涓?SelectionListener
錛堝湪 org.eclipse.swt.events
鍖呬腑錛夊仛鍒拌繖涓鐐廣傚綋鎸夐挳鐘舵佸彂鐢熸敼鍙樻椂錛堥氬父鏄寜閽鎸変笅錛夛紝灝變細鐢熸垚浜嬩歡銆傛竻鍗?5 鍦ㄥ崟鍑?Clear 鎸夐挳鏃惰緭鍑轟竴鏉℃秷鎭傘銆
銆銆娓呭崟 5. 鎸夐挳浜嬩歡澶勭悊紼嬪簭
import org.eclipse.swt.events.*;
:
// Clear button pressed event handler
clear.addSelectionListener(new SelectionListener() {
public void widgetelected(selectionEvent e) {
System.out.println("Clear pressed!");
}
public void widgetDefaultSelected(selectionEvent e) {
widgetelected(e);
}
});
|
銆銆姝や唬鐮佷嬌鐢ㄤ簡涓涓尶鍚嶇殑鍐呴儴綾伙紝浣嗘偍榪樺彲浠ヤ嬌鐢ㄦ寚瀹氱殑鍐呴儴綾繪垨鍗曠嫭鐨勭被浣滀負鐩戝惉鍣ㄣ傚鏁板寘鍚袱涓垨鏇村鏂規硶鐨?...Listener
綾昏繕鏈変竴涓被浼肩殑 ...Adapter
綾伙紝榪欎釜綾繪彁渚涗簡涓浜涚┖鐨勬柟娉曞疄鐜幫紝騫朵笖鍙互鍑忓皯鎮ㄩ渶瑕佺紪鍐欑殑浠g爜鏁伴噺銆備緥濡傦紝榪樻湁涓涓?SelectionAdapter
綾伙紝榪欎釜綾誨疄鐜頒簡 SelectionListener
銆?
銆銆娉ㄦ剰錛屽湪榪欎簺鏂規硶涓墽琛岀殑鎿嶄綔蹇呴』蹇熷畬鎴愶紙閫氬父涓嶈凍涓縐掓椂闂達級錛屾垨鑰呰 GUI 鐨勫弽搴斿皢鏄繜閽濈殑銆傛洿闀挎椂闂寸殑鎿嶄綔錛堟瘮濡傝闂枃浠訛級闇瑕佸崟鐙殑綰跨▼錛屼絾閭f槸浠ュ悗鏌愭湡鏂囩珷鐨勪富棰樸?
銆銆澶嶅悎鎺т歡
銆銆鑷蟲錛屾垜浠凡緇忚璁轟簡涓浜涘崟鐙殑鎺т歡銆傚湪澶氭暟 GUI 涓紝璁稿鎺т歡琚粍鍚堝湪涓璧蜂互鎻愪緵涓板瘜鐨勭敤鎴蜂綋楠屻傚湪 SWT 涓紝榪欑緇勫悎鏄氳繃 Composite 綾誨疄鐜扮殑銆?
銆銆澶嶅悎鎺т歡鍙互鍦ㄤ換浣曠駭鍒笂榪涜宓屽錛屽茍涓斿彲浠ユ販鍚堝拰鍖歸厤鎺т歡錛屽皢瀹冧滑浣滀負瀛愭帶浠惰繘琛岀粍鍚堛傝繖鏍峰仛鍙互鏋佸ぇ鍦板噺灝?GUI 寮鍙戠殑澶嶆潅鎬э紝騫朵負 GUI 浠g爜閲嶇敤錛堥氳繃灝佽鍐呴儴 GUI錛夊垱閫犱簡鏈轟細銆傚鍚堟帶浠跺彲浠ユ槸鏈夎竟鐣岀殑錛屽茍涓旇繖浜涜竟鐣屽緢瀹規槗鍦ㄨ瑙変笂浜х敓娣鋒穯錛屾垨鑰呭畠浠篃鍙互鏄棤杈圭晫鐨勶紝鏃犵紳闆嗘垚鍒版洿澶х殑緇勪腑銆?
銆銆娓呭崟 6. 鍒涘緩涓涓湁杈圭晫鐨勫鍚堟帶浠躲?BR>
銆銆鍗?6. 鍒涘緩涓涓湁杈圭晫鐨勫鍚堟帶浠?/B>
import org.eclipse.swt.widget.*;
:
Composite parent = ...;
:
Composite border = new Composite(parent, SWT.BORDER);
|
銆銆闄や簡杈圭晫涔嬪錛孏roup 澶嶅悎瀛愮被榪樻敮鎸佹爣棰樸傚湪瀹氫箟鎺掍粬鎬ф寜閽泦鍚堟椂錛岀粍閫氬父琚敤鏉ュ寘鍚崟閫夌被鍨嬬殑鎸夐挳銆?
銆銆娓呭崟 7 鍒涘緩浜嗕竴涓湁杈圭晫鐨勭粍銆?BR>
銆銆娓呭崟 7. 鍒涘緩涓涓湁杈圭晫鐨勭粍
import org.eclipse.swt.widget.*;
:
Composite parent = ...;
:
Group border = new Group(parent, SWT.SHADOW_OUT);
border.setText("Group Description");
|
銆銆shell
銆銆shell 鏄竴縐嶅彲鑳芥病鏈夌埗澶嶅悎鎺т歡鐨勫鍚堟帶浠訛紙妗嗘灦鎴栫獥鍙o級錛涙澶栵紝瀹冭繕鏈変竴涓綔涓虹埗鎺т歡鐨?Display錛岃繖閫氬父涔熸槸榛樿璁劇疆銆俿hell 鏈夊緢澶氱鏍峰紡錛屼絾鏈甯歌鐨勬牱寮忔槸 SWT.SHELL_TRIM
鎴?SWT.DIALOG_TRIM
銆俿hell 鍙互鏄ā鎬佺殑錛屼篃鍙互鏄潪妯℃佺殑銆傛ā鎬?shell 甯稿父鐢ㄤ簬瀵硅瘽妗嗭紝闃叉鐖?GUI錛堝鏋滄湁鐨勮瘽錛夊湪鍏抽棴瀛?shell 涔嬪墠琚鐞嗐?
銆銆娓呭崟 8 鍒涘緩浜嗕竴涓鏋舵牱寮忕殑欏剁駭闈炴ā鎬?shell銆?BR>
銆銆娓呭崟 8. 鍒涘緩涓涓《綰?shell
import org.eclipse.swt.widget.*;
:
Shell frame = new Shell(SWT.SHELL_TRIM);
:
|
銆銆shell 鍙互鏈夊瓙 shell銆傝繖浜涘瓙 shell 鏄笌鐖?shell 鐩稿叧鐨勭嫭绔嬫闈㈢獥鍙o紙涔熷氨鏄錛屽鏋滅埗 shell 鍏抽棴錛岄偅涔堝叾鎵鏈夊瓙 shell 涔熷皢鍏抽棴錛夈?
銆銆娓呭崟 9 鍒涘緩浜嗕竴涓璇濇鏍峰紡鐨勫瓙 shell銆?BR>
銆銆娓呭崟 9. 鍒涘緩涓涓璇濇 shell
:
Shell dialog = new Shell(frame, SWT.DIALOG_TRIM);
:
|
銆銆鍙傝鍥?4 涓叿鏈?SWT.SHELL_TRIMSee 鐨?shell錛屼互鍙婂浘 5 涓叿鏈?SWT.DIALOG_TRIM 鐨?shell錛屼簡瑙h繖浜涘煎浣曞獎鍝?shell 鐨勬暣媧佹с?
鍥?4. 鍏鋒湁 SWT.SHELL_TRIM 鐨?shell

鍥?5. 鍏鋒湁 SWT.DIALOG_TRIM 鐨?shell

銆銆甯冨眬綆$悊鍣?/STRONG>
銆銆澶嶅悎鎺т歡甯稿父鍖呭惈澶氫釜鎺т歡銆傚彲浠ヤ嬌鐢ㄤ互涓嬩袱縐嶆柟娉曞畨鎺掕繖浜涙帶浠訛細
- 緇濆瀹氫綅 鈥斺?涓烘瘡涓帶浠惰緗槑紜殑 X 鍜?Y 浣嶇疆錛屽茍閫氳繃浠g爜璁劇疆涓瀹氱殑瀹藉害鍜岄珮搴︺?
- 鎵樼瀹氫綅 鈥斺?姣忎釜鎺т歡鐨?X銆乊銆佸搴﹀拰楂樺害閮芥槸閫氳繃LayoutManager 璁劇疆鐨勩?
銆銆鍦ㄥ鏁版儏鍐典笅錛屽簲璇ラ夋嫨浣跨敤 LayoutManagers錛屽洜涓哄緢瀹規槗璋冩暣瀹冧滑鏉ラ傚簲鍙彉澶у皬鐨?GUI銆係WT 涔熸彁渚涗簡涓浜涘竷灞綆$悊鍣ㄤ緵鎮ㄤ嬌鐢紱鍦ㄨ繖涓鏈熺殑緋誨垪鏂囩珷涓紝鎴戜滑灝嗚璁轟袱縐嶅熀鏈殑甯冨眬綆$悊鍣細FillLayout 鍜?GridLayout銆傚湪榪欎袱縐嶆儏鍐典笅錛屾瘡褰撻噸鏂拌緗鍚堟帶浠剁殑澶у皬錛岄兘闇瑕佽繘琛屽畾浣嶃?
銆銆涓浜涘竷灞綆$悊鍣ㄥ父甯告槸涓撲負鏌愪竴涓鍚堟帶浠跺垎閰嶇殑銆備竴浜涘竷灞綆$悊鍣ㄥ彧浣跨敤瀹冧滑鑷韓鐨勫弬鏁板氨鍙互鎺у埗錛岃屽彟涓浜涘竷灞綆$悊鍣ㄨ繕闇瑕佸叾浠栧弬鏁?鈥斺?LayoutData錛岃鍙傛暟鏄湪瀹冧滑綆$悊鐨勫鍚堟帶浠朵腑鐨勬瘡涓帶浠朵笂鎸囧畾鐨勩?
銆銆FillLayout
銆銆FillLayout 浠ヨ鎴栧垪鐨勫艦寮忓畨鎺掓帶浠躲傛瘡涓帶浠舵墍璁劇疆鐨勫ぇ灝忓皢涓庡~鍏呰澶嶅悎鎺т歡鎵闇鐨勫搴﹀拰楂樺害鐩稿悓錛屽湪榪欎簺鎺т歡涔嬮棿錛岀┖闂存槸騫沖潎鍒嗛厤鐨勩備竴縐嶇壒孌婃儏鍐墊槸錛氬湪浠呮湁涓涓瓙鎺т歡鏃訛紝璇ユ帶浠剁殑澶у皬琚緗負濉厖鏁翠釜鐖跺鍚堟帶浠剁殑澶у皬銆?BR>
銆銆娓呭崟 10. 浣跨敤 FillLayout 鍒涘緩涓鍒楁帶浠?/B>
import org.eclipse.swt.widget.*;
import org.eclipse.swt.layouts.*;
:
Composite composite = ...;
FillLayout fillLayout = new FillLayout(SWT.VERTICAL);
composite.setLayout(fillLayout);
|
銆銆GridLayout
銆銆GridLayout 鎻愪緵浜嗕竴涓姛鑳芥洿寮哄ぇ鐨勫竷灞鏂規硶錛岃鏂規硶綾諱技浜庝嬌鐢?HTML 琛ㄧ殑鏂規硶銆傚畠鍒涘緩浜?2-D 緗戞牸鐨勫崟鍏冩牸銆傚彲浠ュ皢鎺т歡鏀劇疆鍦ㄤ竴涓垨澶氫釜鍗曞厓鏍間腑錛堝彲浠ョО涔嬩負鍗曞厓鏍艱法瓚婏級銆傚崟鍏冩牸鐨勫ぇ灝忓彲浠ユ槸鐩哥瓑鐨勶紝鎴栬呮槸緗戞牸瀹藉害鎴栭珮搴︾殑鏌愪釜緇欏畾鍙彉鐧懼垎姣斻傚彲浠ュ皢鎺т歡娣誨姞鍒版煇涓琛岀殑涓嬩竴涓彲鐢ㄥ垪涓紝濡傛灉榪欎竴琛屼腑娌℃湁鏇村鐨勫垪錛岄偅涔堣鎺т歡灝嗙Щ鍔ㄥ埌涓嬩竴琛岀殑絎竴鍒椾腑銆?
銆銆娓呭崟 11 鍒涘緩浜嗕竴涓鍚堟帶浠訛紝璇ユ帶浠舵湁涓よ鍜屼袱涓垪錛屽叾涓寘鍚袱涓凡鏍囪鐨勬枃鏈瓧孌點傝繖浜涘垪鍙互鏈変笉鍚岀殑瀹藉害銆?BR>
銆銆娓呭崟 11. 鍒涘緩涓涓帶浠惰〃
import org.eclipse.swt.widget.*;
import org.eclipse.swt.layouts.*;
:
Composite composite = ...;
GridLayout gridLayout = new GridLayout(2, false);
composite.setLayout(gridLayout);
Label l1 = new Label(composite, SWT.LEFT);
l1.settext("First Name: ");
Text first = new Text(composite, SWT.SINGLE);
Label l1 = new Label(composite, SWT.LEFT);
l2.setText("Last Name: ");
Text last = new Text(composite, SWT.SINGLE);
|
銆銆GridData
銆銆鑰冭檻涓涓嬭繖縐嶆儏鍐碉細鎮ㄩ渶瑕佹寚瀹氭瘡涓帶浠跺浣曚嬌鐢ㄥ叾鍗曞厓鏍間腑鐨勫墿浣欑┖闂淬備負浜嗙粰姣忎釜鍗曞厓鏍兼彁渚涜繖縐嶇簿紜帶鍒訛紝娣誨姞鍒?GridLayout 鐨勬墭綆″鍚堟帶浠剁殑鎺т歡鍙互鎷ユ湁 GridData 瀹炰緥錛圠ayoutData 鐨勫瓙綾伙級銆?
銆銆娓呭崟 12 璁劇疆浜嗚繖浜涙枃鏈瓧孌碉紝浠ヤ究閲囩敤鎵鏈夊彲鐢ㄧ殑鍓╀綑絀洪棿錛堟牴鎹墠闈㈢殑娓呭崟錛夈?BR>
銆銆娓呭崟 12. 閰嶇疆涓涓墿灞曞埌鎵鏈夊彲鐢ㄧ┖闂寸殑甯冨眬
first.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
last.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
|
銆銆鏋勫緩涓涓繍琛岀▼搴?/STRONG>
銆銆鐜板湪鏄椂鍊欐潵鐪嬩竴涓嬫垜浠凡緇忓湪綆鍗曠殑鍙墽琛屼緥瀛?Basic1 涓璁鴻繃鐨勬墍鏈?SWT 鎺т歡浜嗐傝鍙傞槄 鍙傝冭祫鏂欙紝浠ヨ幏寰楄搴旂敤紼嬪簭鐨勫畬鏁存簮浠g爜銆?BR>
銆銆SWT GUI 闇瑕佷竴涓凡閰嶇疆濂界殑鐜鏉ヨ繍琛屻傝繖涓幆澧冩槸閫氳繃涓涓樉紺哄疄渚嬫彁渚涚殑錛岃瀹炰緥鎻愪緵浜嗗涓繪満鎿嶄綔緋葷粺鏄劇ず璁懼鐨勮闂傝繖涓樉紺哄疄渚嬪厑璁告偍澶勭悊姣忎釜鐢ㄦ埛杈撳叆錛堥紶鏍囨垨閿洏錛夋潵澶勭悊鎮ㄧ殑 GUI銆?
銆銆娓呭崟 13 鍒涘緩浜嗕竴涓幆澧冨拰涓涓?GUI錛屽茍鏄劇ず浜嗚繖涓?GUI銆?BR>
銆銆娓呭崟 13. 鍒涘緩涓涓?GUI 搴旂敤紼嬪簭騫跺惎鍔ㄥ畠
import org.eclipse.swt.widget.*;
:
Display display = new Display();
Shell shell = new Shell(display);
shell.setText("Shell Title");
// *** construct Shell children here ***
shell.open(); // open shell for user access
// process all user input events
while(!shell.isDisposed()) {
// process the next event, wait when none available
if(!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose(); // must always clean up
|
銆銆姝や唬鐮佸垱寤轟簡涓涓被浼間簬鍥?6 鐨勭獥鍙c?
鍥?6. 紺轟緥搴旂敤紼嬪簭

緇撴潫璇?/B>
銆銆鍦?SWT 鍜?JFace 緋誨垪鐨勭涓鏈熶腑錛屾垜浠粙緇嶄簡澶у鏁板熀鏈?SWT 紿楀彛灝忛儴浠舵帶浠訛細鏍囩銆佹枃鏈佹寜閽佸鍚堟帶浠跺拰 shell銆傝繖浜涙帶浠訛紝涓庢樉紺虹被錛坉isplay class錛夌浉緇撳悎錛屽厑璁稿垱寤哄叏鍔熻兘鐨?GUI銆?

]]>