Java 學(xué)習(xí)

          堅(jiān)持不懈,打通-->軟件—控制—機(jī)械
          posts - 5, comments - 3, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
          上一篇詳細(xì)介紹了一個(gè)SWT實(shí)例,這一篇接下來介紹SWT組件的生命周期
          本文地址:http://www.aygfsteel.com/cpenet/archive/2006/07/04/56539.html

          本篇譯自《 Eclipse.Building.Commercial.Quality.Plug.ins.2nd.Edition 》第四章第二節(jié),希望對(duì)入門者有所幫助。

          ?

          組件的生命周期

          設(shè)計(jì) SWT 的一個(gè)目標(biāo)就是小而靈巧。為了達(dá)到這個(gè)目標(biāo),一個(gè)基本的設(shè)計(jì)策略,就是盡可能的使組件的狀態(tài)存儲(chǔ)在平臺(tái)組件中而不是存儲(chǔ)在 SWT 組件中 ( 這句話,我不理解,也翻譯的不明白,附原文: To achieve this, a basic design decision was made that as much widget state as possible would be stored in the platform widget rather than in the SWT widget.) 。這與 Swing 形成顯著的對(duì)比, Swing Swing 組件中維護(hù)了所有的組件狀態(tài)。 ( 可能是這樣: SWT 把各個(gè)組件的狀態(tài)交給系統(tǒng)平臺(tái)來管理,而 Swing 自己管理各個(gè) Swing 組件的狀態(tài),這樣 Swing 就復(fù)雜,耗費(fèi)的資源,內(nèi)存的需求也多,不知道是不是 J ) 。通過不把系統(tǒng)平臺(tái)級(jí)別的組件信息復(fù)制過來自己維護(hù), SWT 就非常的小巧而且對(duì)內(nèi)存的需求也相應(yīng)少。

          達(dá)到這個(gè)目的所付出的代價(jià)就是 SWT 的組件不能夠自己獨(dú)立存在。當(dāng)一個(gè) SWT 組件被創(chuàng)建時(shí),同時(shí)立即在系統(tǒng)平臺(tái)下也創(chuàng)建了該組件的對(duì)應(yīng)體。接下來,幾乎所有對(duì)該組件的信息狀態(tài)請求都會(huì)由平臺(tái)來處理。

          大部分的系統(tǒng)平臺(tái)在創(chuàng)建一個(gè)組件時(shí),需要該組件明確的父組件的上下文,所以 SWT 需要一個(gè)父組件來最為它的構(gòu)造聲明。許多平臺(tái)在創(chuàng)建組件時(shí)還需要該組件的特定風(fēng)格參數(shù)的設(shè)定。例如:按鈕有復(fù)選框,單選框,簡單按鈕和文本域有單行和多行之分。

          SWT 類中,風(fēng)格位段用整數(shù)類型來定義且不會(huì)更改。風(fēng)格參數(shù)被組織在一起,其它各種構(gòu)造器傳遞著這些參數(shù)來創(chuàng)建一個(gè)組件的初始風(fēng)格。注意到,所有的平臺(tái)并不支持所有的風(fēng)格,所以在很多情況下,被請求的風(fēng)格被認(rèn)為是一種提示,它或許會(huì)或許不會(huì)對(duì)一個(gè)特殊的平臺(tái)產(chǎn)生影響。

          當(dāng) SWT 組件不在需要時(shí),一些平臺(tái)要求作出明確的釋放。對(duì)于組件本身和一些資源 ( 例如:圖形,字體,顏色 ) 而言,他們已經(jīng)具備了系統(tǒng)的這個(gè)要求。基本的規(guī)則是:如果你創(chuàng)建了一個(gè)組件,就要使用 dispose() 方法來撤銷這個(gè)組件。如果你使用了一些系統(tǒng)資源,例如系統(tǒng)顏色,你就不需要釋放他們。

          幸運(yùn)的,當(dāng)一個(gè)組件被釋放的,它的所有子組件會(huì)自動(dòng)地被釋放。這意味著,如果你釋放了一個(gè) shell ,那么所有 shell 包含的組件都會(huì)被自動(dòng)釋放。


          評(píng)論

          # re: SWT組件的生命周期(續(xù)一個(gè)簡單的SWT程序?qū)嵗霸斀猓?a name="Post">  回復(fù)  更多評(píng)論   

          2006-09-13 22:05 by ak_zct
          這篇文章寫得好。通俗易懂。
          主站蜘蛛池模板: 龙门县| 兴安盟| 扬州市| 蒙阴县| 溆浦县| 溧阳市| 华坪县| 科技| 饶河县| 夏邑县| 乌恰县| 苏尼特右旗| 新绛县| 新昌县| 汝南县| 琼海市| 营山县| 都江堰市| 济宁市| 石嘴山市| 武定县| 平舆县| 永年县| 北碚区| 逊克县| 台南县| 宕昌县| 南部县| 迁西县| 青州市| 北流市| 丰县| 双峰县| 黔西县| 怀柔区| 南平市| 许昌县| 玉林市| 罗定市| 桑日县| 隆昌县|