在Eclipse中使用SWT進行介面設計

來源:互聯網
上載者:User
在Eclipse中使用SWT進行介面設計 SWT是一個IBM開發的跨平台GUI開發套件。至於為什麼IBM要費勁自己另起爐灶開發一個GUI工具包,而不是使用Sun現有的由AWT, Swing, Java 2D, Java 3D等構成的Java GUI架構,那就說來話長了。(記得在一個BBS上讀過一個關於SWT起源的調侃類的文章)。1. 為什麼要使用SWT?   SWT是一個IBM開發的跨平台GUI開發套件。至於為什麼IBM要費勁自己另起爐灶開發一個GUI工具包,而不是使用Sun現有的由AWT, Swing, Java 2D, Java 3D等構成的Java GUI架構,那就說來話長了。(記得在一個BBS上讀過一個關於SWT起源的調侃類的文章)。
   在SWT之前,Sun已經提供了一個跨平台GUI開發套件AWT (Abstract Windowing Toolkit). 雖然AWT架構也使用的是原生視窗組件(native widgets),但是它一直未能突破LCD問題。LCD問題導致了一些主要平台特徵的遺失。如果你不明白的話(其實我也沒明白),換句話說,如果平台A有視窗組件(widgets)1-40,而平台B有視窗組件(widgets)20-25,那麼跨平台的AWT架構只能提供這兩個視窗組件集的交集。
   為解決這個問題,Sun又建立了一個新的架構。這個架構不再使用原生視窗組件,而是使用模擬視窗組件(emulated widgets)。這個方法雖然解決了LCD問題,並且提供了豐富的視窗組件集,但是它也帶來了新的問題。例如,Swing應用程式的介面外觀不再和原生應用程式的外觀相似。
 雖然在JVM中這些Swing應用程式已經得到了最大程度的效能改善,但是它們還是存在著其原生對應物所不具有的效能問題。並且,Swing應用程式消耗太多的記憶體,這樣Swing不適於一些小裝置,如PDA和行動電話等。
   IBM進行了嘗試以徹底解決AWT和Swing架構帶來的上述問題。最終,IBM建立了一個新的GUI庫,這就是SWT。SWT架構通過JNI來訪問原生視窗組件。如果在宿主(host)平台上無法找到一個視窗組件,SWT就會自動地類比它。
 2. SWT應用程式的組成   一個SWT應用程式的基本組成部分為顯示介面(Display)、命令介面(Shell,使命令進入並使運行初始化)和視窗組件(Widgets)。Display負責管理事件迴圈和控制UI線程和其他線程之間的通訊。Shell是應用程式中被作業系統視窗管理器管理的視窗。每個SWT應用程式至少需要一個Display和大於等於1個的Shell執行個體。
   圖1:從不同的角度看SWT應用程式  圖1從不同的角度展示了SWT應用程式。左側的圖是一個簡化的UI對象的繼承圖。中間的圖展示了UI對象的容器結構(containment structure)。右側的圖則是建立後的UI外觀。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.