【摘 要】Java對于服務(wù)器,個人電腦和移動設(shè)備來說是一項(xiàng)偉大的技術(shù)。由于需要java的跨平臺的特性,因此java在服務(wù)器和移動設(shè)備方面的應(yīng)用是非常成功的。Java開發(fā)的桌面程序既有友好易用的圖形用戶界面,也能夠?qū)崿F(xiàn)相應(yīng)的功能?!娟P(guān)鍵詞】桌面開發(fā)
AWT
Swing SWT Java與桌面端現(xiàn)在流行的桌面平臺要數(shù)Windows、Mac和 Linux。但它們不是十全十美的,Windows主宰著桌面操作系統(tǒng)的市場,其上有巨大的應(yīng)用和開發(fā)群體,但它昂貴且有許多安全漏洞。Linux有著穩(wěn)固的基礎(chǔ),它是開源的軟件,比Windows更可靠。Mac非常容易操作且不是黑客的目標(biāo),但與Windows和Linux比起來,Mac的硬件和軟件可選的余地非常的有限。Windows、Linux和Mac 在桌面的流行創(chuàng)造了多樣性,這種多樣性正是Java需要的,這就使得Java在桌面有舉足輕重的地位??缙脚_的支持Java 運(yùn)行于所有相關(guān)的操作系統(tǒng),包括Windows、Mac和Linux。也就是說把現(xiàn)有的應(yīng)用從一個操作系統(tǒng)移植到另一個操作系統(tǒng)而不用做太多的改動,所以Java是首選的桌面開發(fā)平臺?;蛟S用微軟的可視化工具很容易構(gòu)建.NET應(yīng)用,但是這將使軟件被綁定在了Windows平臺上。也許有人想用Linux 代替Windows 從而避免由微軟操作系統(tǒng)的漏洞帶來的問題,但是用戶不能容忍的問題之一是當(dāng)從Windows移植到Linux時所帶來的巨大的費(fèi)用。如果應(yīng)用程序用Java構(gòu)建,就沒有了這些問題,Java的圖形用戶界面看上去會跟使用的操作系統(tǒng)一樣,而并不需要做什么改動。豐富的特征最初,Java只有非常有限的一些特征去構(gòu)建圖形用戶界面,思想就是用與平臺無關(guān)的Java應(yīng)用程序接口打包不同的操作系統(tǒng)的本地圖形用戶界面,稱之為抽象的窗口工具。它僅有普通的部件如文件域、文本區(qū)、選擇框、單選按鈕、列表框和按鈕被AWT支持,圖形和圖像的特性支持非常有限,也就是說,只能夠構(gòu)建簡單的applet程序。認(rèn)識到需要更高級的圖形用戶界面組件和圖形能力,Sun公司開發(fā)了Swing,Java 2D,Java 3D,圖像的輸入/輸出,Java高級圖像(JAI)和很多其它的組件。這些中的一些窗體組件現(xiàn)在已經(jīng)是Java 2標(biāo)準(zhǔn)版(J2SE)里的一部分。例如Swing、Java 2D、圖像的輸入/輸出都是Java的核心API,它們隨著Java開發(fā)工具包(JDK)和Java運(yùn)行環(huán)境一起被提供給用戶。Java圖形界面工具Java有三個主要的圖形界面工具:AWT,Swing和SWT。Swing 是構(gòu)建java圖形界面標(biāo)準(zhǔn)的API(應(yīng)用程序接口),一些AWT類由Swing繼承而來。SWT是一個非常有前途的新的窗體工具,由IBM資助。但是事實(shí)上,這三者相互補(bǔ)充,它們滿足不同的需求。AWT抽象窗口工具包(Abstract Windowing Toolkit)(AWT)是Java的平臺獨(dú)立的窗口系統(tǒng),圖形和用戶界面器件工具包。AWT是Java基礎(chǔ)類(JFC)的一部分,為Java程序提供圖形用戶界面(GUI)的標(biāo)準(zhǔn)API。AWT提供了JavaApplet和Java Application中可用的用戶圖形界面GUI中的基本組件(components)。由于Java是一種獨(dú)立于平臺的程序設(shè)計語言,但GUI卻往往是依賴于特定平臺的,Java采用了相應(yīng)的技術(shù)使得AWT能提供給應(yīng)用程序獨(dú)立于機(jī)器平臺的接口,這保證了同一程序的GUI在不同機(jī)器上運(yùn)行具有類似的外觀(不一定完全一致)。SwingSwing是一個用于開發(fā)Java應(yīng)用程序用戶界面的開發(fā)工具包。它以抽象窗口工具包(AWT)為基礎(chǔ)使跨平臺應(yīng)用程序可以使用任何可插拔的外觀風(fēng)格。Swing開發(fā)人員只用很少的代碼就可以利用Swing豐富、靈活的功能和模塊化組件來創(chuàng)建優(yōu)雅的用戶界面。工具包中所有的包都是以swing作為名稱。SWTSWT是IBM為它的Eclipse集成開發(fā)環(huán)境而開發(fā)的圖形用戶界面工具。SWT可以在Eclipse環(huán)境外使用,而且提供對操作系統(tǒng)本地圖形用戶界面的直接訪問。因此,基于SWT的Java應(yīng)用程序擁有本地的圖形用戶界面并且可以和本地別的應(yīng)用程序和部件集成在一起。SWT社區(qū)現(xiàn)在正在設(shè)計瀏覽器API,這些API可以產(chǎn)生基于IE或者M(jìn)ozilla的HTML窗口。SWT現(xiàn)在可以在AIX,HPUX,Linux,QNX,Solaris,和Windows下面運(yùn)行。誤解與Bug對于java/Swing一直有著誤解,諸如:Java/Swing太慢了,或者是Java/Swing需要更多的內(nèi)存。也許老式的奔騰運(yùn)行JDK1。2確實(shí)很慢,但是PIII級別的CPU運(yùn)行JDK1。4環(huán)境是足夠快的。一個應(yīng)用程序中鼠標(biāo)在1毫秒和在10毫秒的反映的差異,從使用者方面來說是沒什么區(qū)別的。Java不但在企業(yè)級的上千人同時在線的服務(wù)器中表現(xiàn)良好,而且在僅有有限資源的移動設(shè)備上的表現(xiàn)也是很出色的??偨Y(jié)Java作為一種網(wǎng)絡(luò)技術(shù),是為了在瀏覽器中能夠運(yùn)行小應(yīng)用程序而發(fā)布,但是它從開始就有運(yùn)行獨(dú)立的桌面應(yīng)用程序的能力。不幸的是,AWT沒有提供足夠的桌面端的程序所需的特性。Swing著手于解決這些問題,但是它有不少的bug。今天,Java有構(gòu)建大型桌面端應(yīng)用程序的能力并修復(fù)了bug。Java獨(dú)有的優(yōu)點(diǎn)是“只寫一次,到處運(yùn)行”——在Windows,Linux,Mac和其它操作系統(tǒng)上運(yùn)行Java代碼的能力?!緟⒖嘉墨I(xiàn)】[1]Eric,Java編程思想[M],第4版,機(jī)械工業(yè)出版社,2007年4月[2]Metsker S J,Java設(shè)計模式[M],第2版,電子工業(yè)出版社,2012年09 月[3]畢建信,基于MVC設(shè)計模式的Web應(yīng)用研究與實(shí)現(xiàn)[D],武漢理工大學(xué)出版社,2006年5月