偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

描述AWT和Swing的歷史

開發(fā) 后端
本文描述AWT和Swing的歷史,故事中的歷史有了大概的了解,尤其是SWT?,F(xiàn)在你也許會(huì)覺得,IBM創(chuàng)建SWT的理由是合理的而Swing應(yīng)該沿用SWT采用的方式。

Overview概述

Java GUI 工具包一直是一個(gè)倍受爭議的話題。同樣的爭論也發(fā)生在其他編程語言如Smalltalk。實(shí)際上每個(gè)平臺(tái)無關(guān)的語言都存在著這樣的爭論。Java作為當(dāng)前最受廣泛使用的編程語言而尤為突出。

這場(chǎng)爭論在支持模擬組件(如widgets和control,在下文中也稱之為仿造組件)和支持本地組件(在下文中也稱之為原生組件)的人們之間展開,于是Java開發(fā)者形成了兩個(gè)不同的陣營,提倡使用模擬組件的Swing,和提倡使用原生組件的SWT。

歷史

Internet上有許多圍繞這一爭論的故事。你可能已經(jīng)聽說過它們中的大多數(shù)了,其中之一有助于讓你理清頭緒,讓我們就從這里開始,Amy Fowler是Swing陣營的一個(gè)倡導(dǎo)者。

回到上個(gè)世紀(jì)90年代,曾幾何時(shí)有3家龐大的Smalltalk公司——IBM、Parc-Place和 Digitalk。在90年代初期3家公司的市場(chǎng)份額大致相等,生活是美好的。Parc-Place采用仿窗口部件(emulated widgets)的設(shè)計(jì)(即Swing的設(shè)計(jì)),IBM和Digitalk則采用原生窗口部件(native widgets)。后來IBM壓倒了另外兩家,因此他們打算合并成一家,假設(shè)叫做Parc-Place Digitalk。隨后當(dāng)他們?cè)噲D將他們的產(chǎn)品融合到一個(gè)叫做Jigsaw的計(jì)劃中時(shí)爆發(fā)了一場(chǎng)大戰(zhàn),計(jì)劃由于政治原因失敗了(開發(fā)人員實(shí)際上已經(jīng)能讓它運(yùn)轉(zhuǎn)起來),就因?yàn)樵头略靸膳傻乃缿?zhàn)。

Amy贏得了精神上的勝利,不過IBM贏得了他們所有的生意,因?yàn)檫@兩家公司在一整年里除了吵架什么都沒做。當(dāng)塵埃落定之后PPD(Parc-Place Digitalk當(dāng)時(shí)已改名為Objectshare,跟Windscale改名為Sellafield的原因相同——讓人們淡忘之前發(fā)生的災(zāi)難)的股票價(jià)格從60美元掉到了低于1美元1股。他們因?yàn)閭螆?bào)收入被NASDAQ摘牌,從此消失。

當(dāng)時(shí),AWT和Swing已經(jīng)出現(xiàn)了。SUN當(dāng)時(shí)已經(jīng)建立了一套基本的可移植控件類,這些類映射到不同操作系統(tǒng)上的原生窗口組件(native widget),當(dāng)時(shí)的AWT還滿是漏洞,遠(yuǎn)不能稱為可靠,還需要SUN的coder們?nèi)バ扪a(bǔ)。然后Amy被雇傭了,她承諾通過輕量級(jí)方案解決所有窗口組件的問題,以此說服SUN管理層讓她當(dāng)了GUI開發(fā)部門的頭頭。隨后Amy雇傭了所有她過去在Parc-Place的舊朋友,讓他們來開發(fā)Swing。

在IBM,VisualAge for Java最初是用Smalltalk(用的是原生窗口組件)寫的,當(dāng)將這些工具向Java代碼庫遷移時(shí),他們需要一套窗口組件。IBM這邊的開發(fā)人員都是原來搞Smalltalk的那一批人,他們對(duì)管理層要求用Swing來構(gòu)建WebSphere Studio工具都非常不情愿?!癝wing是個(gè)可怕的充滿缺陷的怪獸“。因此開始了一個(gè)新的項(xiàng)目,把他們的Smalltalk原生窗口組件移植到 Java上去。這個(gè)工具集后來被成為SWT,S開始是Simple的縮寫,不過后來變成了Standard的縮寫。這個(gè)項(xiàng)目獲得了成功,被運(yùn)用在發(fā)布的 VisualAge Micro Edition產(chǎn)品中。他們當(dāng)時(shí)發(fā)現(xiàn)在Swing讀事件隊(duì)列的時(shí)候用了一種可能留下內(nèi)存漏洞的方式,而不得不采用他們自己的查詢 Windows事件隊(duì)列的循環(huán),以糾正這個(gè)錯(cuò)誤。這促成了他們關(guān)于SWT,AWT和Swing不能共存的決定。他們把這個(gè)工具包放到了Eclipse中,這是一個(gè)來自于早期Visual Age的工具平臺(tái)。

你應(yīng)該已經(jīng)從上述的故事中對(duì)三者的歷史有了大概的了解,尤其是SWT。現(xiàn)在你也許會(huì)覺得,IBM創(chuàng)建SWT的理由是合理的而Swing應(yīng)該沿用SWT采用的方式。這樣的觀點(diǎn)是片面的,當(dāng)你深入了解到Java的本質(zhì)之后,你會(huì)發(fā)現(xiàn)其實(shí)并不像你想象的那么簡單。
先決條件

什么才是Java本質(zhì)的,影響到工具集設(shè)計(jì)的特征呢?或者說,什么才是Java GUI工具集設(shè)計(jì)的先決條件呢?

答案來自于Sun對(duì)Java的承諾之一:write once, run anywhere(一次編寫,隨處運(yùn)行)。這是Java不同于其他語言的優(yōu)勢(shì)所在。在Java被創(chuàng)建之前,軟件的跨平臺(tái)性能是開發(fā)者,特別是那些希望對(duì)多平臺(tái)提供支持的開發(fā)者的夢(mèng)魘。在當(dāng)今的生活中Internet的使用已經(jīng)相當(dāng)?shù)钠毡榱耍谑澜绮煌锹涞娜藗冊(cè)诓煌钠脚_(tái)上工作著。軟件提供商為不同的操作系統(tǒng)提供支持是再平凡不過的事情。Java的write-once-run-anywhere(WORA)承諾顯然減輕了開發(fā)者的負(fù)擔(dān),極大地提高了軟件開發(fā)的生產(chǎn)力。

然而編寫跨平臺(tái)的應(yīng)用程序,你必須使用支持平臺(tái)無關(guān)性的標(biāo)準(zhǔn)庫。這些標(biāo)準(zhǔn)庫包括語言支持,公共用途,網(wǎng)絡(luò),I/O和GUI工具集等。所以當(dāng)Sun開始設(shè)計(jì) GUI工具集的時(shí)候,首要任務(wù)就是考慮一個(gè)設(shè)計(jì)良好的平臺(tái)無關(guān)的API。AWT和Swing都被小心地設(shè)計(jì)以保證平臺(tái)兼容性。SWT則相反,它在設(shè)計(jì)之初并不以擴(kuò)展性為原則,它為一個(gè)專有的IDE Visual Age for Java而設(shè)計(jì),Windows作為這個(gè)IDE的首選運(yùn)行環(huán)境擁有很高的優(yōu)先級(jí)考量。SWT API類似于WIndows,通常它并不如Swing的擴(kuò)展性好,盡管Steve Northover,SWT之父,辯稱SWT是平臺(tái)無關(guān)的,你可以很容易地發(fā)現(xiàn)許多Windows API的痕跡。

【編輯推薦】

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

2009-07-14 15:01:02

AWT和Swing

2009-07-17 09:36:14

SWT和Swing的區(qū)

2009-07-17 10:11:55

AWT和Swing

2009-07-17 11:13:46

AWT和SwingSwing組件

2009-07-10 17:20:38

Swing構(gòu)件AWT構(gòu)件

2009-07-16 13:37:33

Swing和AWT

2009-07-10 17:03:17

AWT組件Swing組件

2009-07-15 16:39:51

AWT和Swing

2009-07-14 12:58:49

AWT和Swing

2009-07-16 13:50:28

AWT和Swing

2009-07-17 15:30:30

JFaceAWT和SWTSwing

2009-07-14 15:12:36

SwingSWT和AWT

2009-07-17 10:01:14

Swing和AWT

2009-07-10 15:41:27

Swing AWT

2009-07-17 10:25:41

AWT和SwingSWT

2009-07-17 17:16:44

Swing實(shí)現(xiàn)的目標(biāo)

2011-04-15 17:33:39

SWINGAWT

2009-07-17 09:55:02

事件監(jiān)聽器SWT和SwingAWT

2009-07-17 09:44:28

Look And Fe布局管理器SWT和Swing

2011-05-04 15:21:20

swing
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)