精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

AWT,SWT和Swing的區別

開發 后端
本文介紹AWT,SWT和Swing的區別是Swing是純Java實現,而SWT和AWT 是Java和JNI的混合,當然,它們的目標都是相同的,提供一個跨平臺的APIs。

GUI 應用程序是軟件的一種主要類型,所以Java的GUI庫應該是標準化并被集成到JRE平臺中的。然而不同的操作系統有不同的GUi風格和組件集。有一些組件在所以平臺上有相似的觀感。這些共有組件如按鈕,標簽,文本域,單選框等被稱為標準組件。不同的GUI工具集提供了不同的組件集。GUI工具集總是遵循不同的原則來選擇組件類型和特征以實現。考察一個工具集,有兩個不同的要素:組件類型和組件特征。

Terms
首先讓我圖解兩個數學概念:最大公約數和最小公倍數。三個集合代表不同的操作系統。相交的部分是最大公約數,合并的部分是最小公倍數。

現在讓我們來考察Java GUI工具集AWT,SWT和Swing的區別

AWT

AWT 組件集遵循最大公約數原則,即AWT只擁有所有平臺上都存在的組件的公有集合。所以你在AWT中無法獲取如表或樹等高級組件,因為它們在某些平臺上不支持。AWT的組件特征同樣遵循這一原則。它只提高平臺上公有的特征。例如AWT按鈕不能附著圖片,因為在Motif平臺上,按鈕是不支持圖片的。

由于它低劣的組件集和特征,AWT無法吸引開發者。它是Sun不推薦使用的,只是為了確保向下兼容和支持Swing。

SWT

SWT 最初的目標之一是為了提供比AWT更為豐富的組件集。它遵循最小公倍數原則以提供一個各個平臺上包含的組件的并集。思路是如果一個組件在某個平臺上包含,那么SWT就會包裝它并用java代碼和JNI來調用它。如果一個組件在某一平臺上不存在,它就會用繼承并繪制Composite的方式來模擬組件。一個 SWT Composite類似于AWT的Canvas。以這種方式,SWT提供了較AWT更為豐富的組件集。值得指出的是SWT的JNI封裝不同于AWT,它的模擬也不同于Swing。

在組件特征方面,SWT類似于AWT。它遵循最小公倍數原則。在早期的SWT版本中,SWT按鈕因為和AWT同樣的原因不支持附著圖片。在之后的版本中,許多缺失的特征采用模擬的方式補全。但仍有許多特征無法采用純粹的模擬實現。SWT將組件的控制交給本地操作系統。它難以擴展。只有例如圖形裝飾等特征可以借助模擬繪制來自定義實現。所以嚴格意義上將,SWT組件的組件集和特征因其難于擴展而不如Swing來得豐富。

Swing

Swing 是三者中最強大和靈活的。在組件類型上,它遵循最大公約數原則。由于Swing可以控制自身GUI系統的全部并有很好的可擴展和靈活性,它幾乎可以創建所有你想象得到的組件。唯一的限制是它的AWT容器。在Swing中你還不能跨平臺地實現真正的透明化和不規則矩形窗口,因為Swing依賴于AWT頂層容器例如Applet, Window, Frame and Dialog等。除此之外,Swing幾乎實現了所有平臺上的標準組件。

在組件特征上,Swing遵循最小公倍數原則。它擁有所有平臺上可提供的組件特征。不僅如此,你還可以繼承已有的Swing組件并添加新的特性。

上面比較主要是在API級別上的。讓我們將比較的焦點轉移到實現細節上。AWT,SWT和Swing的區別是Swing是純Java實現,而SWT和AWT 是Java和JNI的混合。當然,它們的目標都是相同的,提供一個跨平臺的APIs。然而為了達到這一點,SWT和AWT不得不犧牲一些組件和特性以提供一個通用的APIs。

AWT

一個AWT組件通常是一個包含了對等體接口類型引用的組件類。這個引用指向本地對等體實現。舉java.awt.Label為例,它的對等體接口是 LabelPeer。LabelPeer是平臺無關的。在不同平臺上,AWT提供不同的對等體類來實現LabelPeer。在Windows上,對等體類是WlabelPeer,它調用JNI來實現label的功能。這些JNI方法用C或C++編寫。它們關聯一個本地的label,真正的行為都在這里發生。作為整體,AWT組件由AWT組件類和AWT對等體提供了一個全局公用的API給應用程序使用。一個組件類和它的對等體接口是平臺無關的。底層的對等體類和JNI代碼是平臺相關的。


SWT

SWT也使用JNI的方法論來實現。但細節不同于AWT。SWT的擁護者聽到人們拿SWT和AWT相提并論可是會很生氣的,Steve Northover,SWT之父,就曾為此抱怨過。

沒錯,它們是不同的。讓我們深究SWT的代碼。在SWT中,各個平臺上唯一相同的部分是組件的接口,是類和方法的定義簽名。所有的底層代碼都是平臺差異的。 SWT為每個平臺提供了OS類。這個類用JNI封裝了許多本地APIs。SWT組件類通過把這些JNI方法黏合在一起提供一個有意義的功能。

例如,在Windows上,文本域的選擇是由一個系統調用處理的。這個系統調用在Windows的OS類中作為一個本地方法實現。所以在Windows平臺的Text的setSelection方法中只用到了一個JNI調用。

然而,在motif上,文本域的選擇包含兩個本地調用。SWT就在motif的OS類中實現了兩個調用。所以在motif上組件類需要作兩次調用來實現文本的選擇。

現在你應該能看出SWT和AWT的最大不同了,它們使用了不同的對等體編程方式來消除平臺差異。SWT用java代碼或有JNI實現的java對等體來黏合系統調用。而AWT把代碼包含在對等體中,使情況復雜化了,我個人覺得SWT的方法更加明智。
SWING

到了Swing這里,一切就變得清晰和直接了。除了頂層容器,Swing的實現不依賴于具體平臺。它掌管了所有的控制和資源。Swing所需要的是事件輸入來驅動系統,以及承接自頂層AWT容器的圖形處理,字體和顏色。普通的Swing組件可以看作是AWT容器的一塊邏輯區域。它們并沒有注冊對等體。所有添加到同一頂層容器的Swing組件共享它的AWT對等體以獲取系統資源,如字體,圖形處理等。Swing將組件自己的數據結構存儲在JVM的空間中。它完全由自己管理畫圖處理,事件分發和組件布局。


由于AWT和SWT都持有對本地組件的引用,它們必須以正確的方式釋放這些引用以避免內存泄露和JVM崩潰。AWT將絕大多數資源管理任務交給系統,將開發者從單調乏味的資源管理中解救出來。然而這使得AWT的實現復雜化了。一旦它實現了,開發者很少有機會犯錯誤并使他們的程序崩潰。

SWT 用的是另一種方法。大體上,SWT讓開發者自己來管理資源。它的一條著名的規則是:誰創建,誰釋放。因此開發者必須謹慎地顯式調用dispose方法釋放每一個由他創建的組件和資源。這簡化了SWT的實現模型,但把開發者擺在了因錯誤編碼而易于造成程序崩潰這一風險之上。
模擬方式的區別

SWT和Swing在它們的實現上都使用了模擬。SWT只模擬平臺上缺失的組件。區別是SWT的模擬更像是AWT的Canvas實現的模擬。SWT的 Composite類有它自己在操作系統中相應的對等體。它從自己的對等體中獲得所有它所需要的資源如圖形處理的對象,字體和顏色等。它直接從操作系統獲取所有的事件并進行處理。然而,Swing組件在操作系統中沒有相應的對等體。它只是一塊頂層容器中的邏輯區域,實際上它從頂層容器的對等體中借用資源。 Swing的事件并不是底層系統產生的事件。它們實際是由頂層容器處理AWT事件所產生的偽事件。我們會在稍后的事件部分中詳細介紹它。
圖形層結構

另一個不同之處是Swing組件的z-order系統是來自于AWT組件的。如上所述,Swing組件與頂層AWT容器共享一個對等體。因此,Swing組件也和頂層容器有相同的z-order。SWT和AWT組件都有不同于頂層容器的z-order,通常是高于頂層容器。故而如果AWT組件和Swing組件混合在一起的話,Swing組件將可能被AWT組件遮住。當操作系統開始更新UI的時候,頂層容器和Swing組件總是先于AWT組件繪制。當它們完成繪制,AWT組件會覆蓋Swing可能繪制過的地方。因此不提倡Swing和AWT組件的混用。如果有一個浮動的Swing組件如菜單,AWT組件很可能遮蓋菜單。以上是AWT,SWT和Swing的區別的介紹

【編輯推薦】

  1. 概述Swing窗體的種類
  2. 淺談Swing線程三種
  3. Swing全屏幕模式
  4. 淺析Swing線程中的LookupEvent
  5. Swing文件選擇器的制作
責任編輯:佚名 來源: 51CTO.com
相關推薦

2009-07-14 15:12:36

SwingSWT和AWT

2009-07-16 13:37:33

Swing和AWT

2009-07-17 15:30:30

JFaceAWT和SWTSwing

2009-07-14 15:01:02

AWT和Swing

2009-07-14 16:02:04

SWT和Swing

2009-07-17 10:25:41

AWT和SwingSWT

2009-07-17 09:55:02

事件監聽器SWT和SwingAWT

2009-07-17 09:44:28

Look And Fe布局管理器SWT和Swing

2009-07-15 15:15:42

比較Swing和SWT

2009-07-17 10:11:55

AWT和Swing

2009-07-10 11:07:18

Swing和SWT

2009-07-17 09:07:20

2009-07-17 11:13:46

AWT和SwingSwing組件

2009-07-10 17:20:38

Swing構件AWT構件

2009-07-15 16:39:51

AWT和Swing

2009-07-10 17:03:17

AWT組件Swing組件

2009-07-14 12:58:49

AWT和Swing

2009-07-16 13:50:28

AWT和Swing

2011-04-15 17:33:39

SWINGAWT

2009-07-17 10:01:14

Swing和AWT
點贊
收藏

51CTO技術棧公眾號

www.黄色片| 欧美色图亚洲视频| 欧美久久久网站| 中文字幕一区二区三区乱码在线| 91九色精品视频| 欧美日韩精品在线观看视频 | 成人女性视频| 日韩精品中文字幕一区| 国产91在线视频观看| 国产午夜视频在线观看| 久久精品国产99| 午夜欧美大片免费观看| 国产精品综合激情| 国产91精品入| 欧美日韩免费观看一区二区三区 | 国产精品日韩欧美一区| 最近2019年好看中文字幕视频| 91网址在线观看精品| 91九色在线看| 亚洲欧洲日韩女同| 久久一区二区三区av| 国产精品国产一区二区三区四区 | 毛片在线播放网址| 国产一级精品在线| 国产精品电影观看| 日本五十路女优| 羞羞色午夜精品一区二区三区| 国产视频久久网| 国偷自产av一区二区三区麻豆| av成人在线播放| 欧美日韩国产精品一区二区三区四区 | 亚洲自拍偷拍九九九| 亚洲精品在线视频观看| 无套内谢的新婚少妇国语播放| 国内一区二区在线| 国产精品久久二区| 成人午夜视频在线播放| 国产精品v日韩精品v欧美精品网站| 中文字幕精品国产| 国产男男chinese网站| 女同另类激情重口| 亚洲成**性毛茸茸| 中文字幕18页| 日韩精品视频在线看| 欧美最猛性xxxxx直播| 韩国日本在线视频| 水蜜桃在线视频| 图片区小说区区亚洲影院| 99久热在线精品视频| 国产三级在线观看| 久久久三级国产网站| 久久艹中文字幕| 午夜福利视频一区二区| 成人黄色777网| 国产日韩欧美亚洲一区| 亚洲精品免费在线观看视频| 国产福利91精品| 亚洲最大福利网站| 999久久久久久| 国产一区二区三区四区五区美女| 成人欧美一区二区三区黑人孕妇| 91国内精品久久久| 激情久久五月天| 亚洲一区二区三区毛片| 99热这里只有精品在线| 国产乱码精品1区2区3区| 91在线中文字幕| 国产高中女学生第一次| 粉嫩av一区二区三区粉嫩| 国模一区二区三区私拍视频| 天堂在线中文| 国产视频亚洲色图| 亚洲国产婷婷香蕉久久久久久99| 日本成a人片在线观看| 国产欧美一区二区精品忘忧草 | 亚洲午夜精品一区二区国产 | 青青草成人免费| 韩国av一区| 欧美洲成人男女午夜视频| 手机av免费观看| 久久精品99国产国产精| 99re国产视频| 日本福利片高清在线观看| 久久久国产精品麻豆| 日韩色妇久久av| huan性巨大欧美| 福利一区视频在线观看| 国产又黄又猛又粗又爽的视频| 亚洲伊人伊成久久人综合网| 精品乱人伦小说| 自拍偷拍中文字幕| 91视频精品| 国内自拍欧美激情| 中文字幕+乱码+中文| 国产激情视频一区二区三区欧美| 国产视频一区二区不卡| 大乳在线免费观看| 亚洲一区二区影院| 久久久久久久少妇| 日韩免费精品| 一区二区三区视频在线| 久久久久久免费观看| 日日噜噜夜夜狠狠视频欧美人| 91精品视频一区| 深夜福利在线观看直播| 日韩毛片精品高清免费| 欧美国产亚洲一区| 成人污版视频| 亚洲日本欧美日韩高观看| 欧美日韩免费做爰视频| 全国精品久久少妇| 国产日韩精品一区观看| av香蕉成人| 欧洲色大大久久| 欧美夫妇交换xxx| 亚洲草久电影| 国产精品第二页| 手机看片福利永久| 亚洲激情在线播放| 日韩一区二区三区久久| 中文字幕精品影院| 久久久噜噜噜久久久| 一起草av在线| 亚洲国产成人私人影院tom| www.中文字幕在线| 欧美片网站免费| 日韩最新在线视频| 国产免费a视频| 91网址在线看| 免费一级特黄毛片| 亚洲超碰在线观看| 久久综合免费视频| 国产又黄又粗又硬| 欧美激情一区二区三区蜜桃视频| a级黄色一级片| 成人看片黄a免费看视频| 久久久极品av| 亚洲最大成人av| 中文字幕乱码亚洲精品一区 | 中文字幕在线官网| 亚洲加勒比久久88色综合| 久久99久久久| 国产成人精品免费网站| 久久久久亚洲av无码专区喷水| 激情久久一区二区| 视频在线观看99| 天天天天天天天干| 国产日韩精品一区二区浪潮av| 国产精品沙发午睡系列| 日韩极品在线| 欧美在线一区二区视频| 日本一区视频| 色域天天综合网| 美女久久久久久久久久| 久久最新视频| 视频在线一区二区三区| 成人国产精品| 久久久精品影院| 99久久精品无免国产免费| 亚洲精品一二三四区| 男男受被啪到高潮自述| 国语精品一区| 久久综合色一本| 午夜av成人| 中文字幕亚洲一区二区三区| 亚洲中文字幕在线一区| 亚洲欧美综合在线精品| 亚洲综合中文网| 亚洲特色特黄| 欧美1o一11sex性hdhd| 日韩视频网站在线观看| www.久久色.com| 国产丰满美女做爰| 精品久久久一区| 欧美成人另类视频| 国产乱码精品一区二区三区av | 欧美极品影院| 色综合影院在线| 北条麻妃一二三区| 欧美日韩国产一区二区| 欧美做受高潮6| 国产一区二三区| 免费看国产一级片| 欧美日韩激情| 91成人理论电影| 成人美女大片| 日韩亚洲成人av在线| 亚洲AV无码一区二区三区性 | 久久久久久久久亚洲| 日韩av资源| 3d成人动漫网站| 日本网站在线播放| 国产精品乱码人人做人人爱 | 欧美极品少妇xxxxⅹ裸体艺术| 色吊丝在线永久观看最新版本| 欧美日韩在线精品一区二区三区激情 | 中文字幕中文字幕一区二区| 女同性αv亚洲女同志| 久久综合婷婷| 欧美高清中文字幕| 日本久久黄色| 精品国产_亚洲人成在线| 国产精品黄色片| 91tv亚洲精品香蕉国产一区7ujn| 免费av在线网址| 日韩av中文字幕在线免费观看| 一区二区美女视频| 日韩欧美aaa| 精品爆乳一区二区三区无码av| 国产视频一区在线播放| 又黄又爽的网站| 国产精品77777| 国产一二三四在线视频| 99在线|亚洲一区二区| 日本精品免费视频| 欧美理论视频| 久久riav| 欧美亚洲色图校园春色| 成人高h视频在线| 欧美日韩尤物久久| 2019中文字幕免费视频| 污污的网站在线看| 久久久精品久久久| 成年在线观看免费人视频| 日韩成人av网| 性生交生活影碟片| 欧美高清性hdvideosex| 最好看的日本字幕mv视频大全| 精品国产999| 懂色av.com| 亚洲综合免费观看高清完整版在线 | 8x8x成人免费视频| 日韩黄色免费网站| 97xxxxx| 国产精品日本欧美一区二区三区| 日本阿v视频在线观看| 91精品婷婷色在线观看| 一区二区三区四区国产| 日韩激情图片| 亚洲精品久久区二区三区蜜桃臀| 视频一区中文| 欧美在线一二三区| 国产成人手机高清在线观看网站| 久久久久一区二区三区| 美女一区二区在线观看| 国产乱码精品一区二区三区日韩精品 | 久久国产精品无码一级毛片| av在线播放一区二区三区| 欧美极品jizzhd欧美仙踪林| 成人精品小蝌蚪| 久久精品aⅴ无码中文字字幕重口| 国产成人久久精品77777最新版本| 在线观看av免费观看| 国产麻豆一精品一av一免费| 亚洲第一成肉网| 国产精品亚洲一区二区三区在线 | 久久天天躁狠狠躁老女人| 毛片在线看网站| 欧美理论片在线观看| 亚洲www色| 97久久伊人激情网| 92国产精品| 国产精品一二三在线| 97久久中文字幕| www.成人av| 私拍精品福利视频在线一区| 乱色588欧美| 青青一区二区三区| 日本一道在线观看| 尤物在线精品| 免费激情视频在线观看| 久久国产精品第一页| 日本wwwxx| 95精品视频在线| 超薄肉色丝袜一二三| 亚洲欧美偷拍三级| 亚洲国产精一区二区三区性色| 日韩欧美视频一区二区三区| 精品一区二三区| 91精品国产免费| 水莓100在线视频| 最近2019免费中文字幕视频三| 三级网站视频在在线播放| 国模精品视频一区二区| 日本欧美韩国| 成人免费视频网站入口| 亚洲国产欧美日韩在线观看第一区| 色视频一区二区三区| 亚洲视频在线免费| 久久久免费视频网站| 久久99精品国产91久久来源| 涩视频在线观看| 中文字幕巨乱亚洲| 精品无码m3u8在线观看| 欧美在线综合视频| 亚洲国产成人在线观看| 国产香蕉精品视频一区二区三区 | 亚洲欧美激情小说另类| 久久午夜免费视频| 7777精品伊人久久久大香线蕉超级流畅| 免费a级片在线观看| 国产亚洲欧美另类中文| 丁香花在线电影| 国产伦精品免费视频| 日韩激情啪啪| 国产www免费| 久久av中文字幕片| 亚洲久久久久久久| 中文字幕精品一区二区三区在线| 男人的天堂久久| 亚洲一区二区三区加勒比| 亚洲久久一区| www.桃色.com| 国产亚洲污的网站| 国内免费精品视频| 日韩一级视频免费观看在线| 成人午夜电影在线观看| 97国产真实伦对白精彩视频8| 国产精品毛片无码| 天堂√在线观看一区二区| 亚洲在线观看| 色哟哟无码精品一区二区三区| 成人欧美一区二区三区黑人麻豆| 9i精品福利一区二区三区| 亚洲白拍色综合图区| 成人av免费| 国产日韩中文字幕在线| 精品毛片免费观看| 99999精品视频| proumb性欧美在线观看| 国产探花在线播放| 8x福利精品第一导航| av网站在线播放| 国产91在线播放| 亚洲三级网页| 午夜肉伦伦影院| 2020国产精品| 国产小视频在线免费观看| 精品国产精品一区二区夜夜嗨| 亚洲卡一卡二| 91文字幕巨乱亚洲香蕉| 午夜影院欧美| 久久精品xxx| 国产精品小仙女| 蜜桃视频最新网址| 在线电影院国产精品| 国产1区2区3区在线| 国产高清视频一区三区| 偷拍亚洲精品| 二级片在线观看| 久草在线在线精品观看| 色欲AV无码精品一区二区久久| 91久久精品一区二区三| 午夜成人鲁丝片午夜精品| 日本成人在线视频网址| 爽爽窝窝午夜精品一区二区| 成人在线观看毛片| 丁香六月综合激情| 欧美成人精品欧美一| 精品少妇一区二区三区免费观看| 69xxx在线| 国产一区二区三区av在线| 黄色亚洲在线| www.日韩免费| 黄在线免费观看| 91成人在线视频| 欧美禁忌电影网| 大香煮伊手机一区| 中文字幕精品一区| 性高潮视频在线观看| 日韩中文在线视频| 国产91在线播放精品| 欧美专区一二三| 久久精品国产免费| 好吊日在线视频| 精品久久久久99| 老牛影视精品| 日韩性感在线| 紧缚奴在线一区二区三区| a级黄色片免费看| 精品粉嫩超白一线天av| 羞羞视频在线观看不卡| 91福利在线免费观看| 熟女少妇a性色生活片毛片| 欧美日韩高清不卡| 免费在线视频欧美| 99在线视频首页| 91久久久久| 欧美成人免费播放| 久久精品国产福利| 激情六月天婷婷| 高清国产午夜精品久久久久久| 日韩欧美三级在线观看| 亚洲精品自拍偷拍| 国产成人久久精品一区二区三区| 成人国产在线看| 久久久99精品免费观看| 91theporn国产在线观看| 色婷婷**av毛片一区| 欧美巨大xxxx|