Java桌面技術(shù)

          Java Desktop Technology

          常用鏈接

          統(tǒng)計

          友情連接

          最新評論

          netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用

              長期以來,Java被認(rèn)為是服務(wù)器端的佼佼者而在桌面領(lǐng)域并無建樹,早期的Swing

          在外觀和性能上都差強人意,成功案例不多,基于Swing的netBeans無疑慘遭厄運,這

          樣的局面下滋生了SWT和Eclipse這種違背Java原則的產(chǎn)物。
              05年大學(xué)畢業(yè)時,偶然的機(jī)會購買了陳剛寫的那本《Eclipse從入門到精通》,這

          是國內(nèi)第一本講述Eclipse和SWT的書籍,我從那時候起接觸的Eclipse和SWT,當(dāng)時的

          感覺就是Eclipse太好用了,免費的,安裝比JBuilder省事多了,解壓便可,但憑這兩

          點我就愛上它了,而且功能絲毫不比JBuilder差。借助Eclipse我自然而然對SWT產(chǎn)生

          了好感,加上當(dāng)時我的桌面開發(fā)經(jīng)驗、技術(shù)不足,我很容易地輕信了書中“SWT好、

          Swing不好”的結(jié)論。
              隨著互聯(lián)網(wǎng)的普及,應(yīng)用的架構(gòu)由C/S逐漸向B/S過度,用戶已經(jīng)厭倦了為客戶端

          下載升級補丁然后再安裝這樣煩瑣的工作,他們喜歡瀏覽器這個通用客戶端。近些年

          來Ajax這個不算什么新玩意的新玩意被世人捧得天花亂墜,甚至Ajax的出現(xiàn)動搖了延

          用多年的經(jīng)典Model2設(shè)計模式。但是畢竟Ajax是用JavaScript來展現(xiàn)的,有些工作還

          是辦不到的,例如如音、視頻等,怎么辦?答案不是Applet和JWS,而是ActiveX。因

          為前者是依賴JVM的,就這么簡單,使得用戶寧可冒險運行不安全的控件和頂著被攔截

          的可能,也不愿意下載JRE。
              早期的Java應(yīng)用程序缺乏像MFC這樣成熟的Framework,程序員編寫程序總是從

          main函數(shù)入手,最多依靠JBuilder、Eclipse、netBeans等工具生成簡單的JFrame窗口

          代碼。RCP(Rich Client Application)的出現(xiàn)打破了這一局面,但是得益的不是

          netBeans而是Eclipse,04年Eclipse3.0發(fā)布,以其插件機(jī)制徹底地打敗了JBuilder從

          而主宰了JavaIDE市場,那時候的netBeans3.5、3.6還只是玩具,根本沒有資格參與

          IDE大戰(zhàn)。
              不僅在桌面應(yīng)用,在server端Sun似乎也無大優(yōu)勢。撇開.net不說,在開源界,

          EJB2.x的冷落使得Spring、Hibernate流行,從而形成時下很時髦的SSHJ,而以

          Linux+Apache+Mysql+PHP構(gòu)成的LAMP也形成了一股勢力,EJB3.0與JSF1.2等組成的

          JavaEE5想要挽回局面短時期還很難。
              綜上所述,Sun技術(shù)之路的窘境很令Java開發(fā)員寒心,至少我是這么想。在大多人

          眼中,唯一認(rèn)可的Sun技術(shù)可能只有Java了。但是Sun不會坐以待斃的,可喜的是,Sun

          作了戰(zhàn)略調(diào)整,在桌面應(yīng)用領(lǐng)域?qū)⒂兴黄啤腏DK1.6及后續(xù)版中,Swing的功能將會

          不斷加強、性能也大幅度提升,Applet的穩(wěn)定性和速度也今非昔比,JRE UpdateN、

          JavaFX也相繼問世。據(jù)說在JDK7中將實現(xiàn)窗口非矩形、半透明的效果,還支持嵌入瀏

          覽器,真是不小的進(jìn)步。隨著netBeans6.0的發(fā)布,相信很多Java開發(fā)員會轉(zhuǎn)向

          netBeans,同時也會有很多優(yōu)秀的netBeans插件和應(yīng)用程序客戶端出現(xiàn)。
              中國有句俗話“風(fēng)水輪流轉(zhuǎn)”,相信netBeans能咸魚翻身,Java借助Swing的跨平臺

          優(yōu)勢能在桌面領(lǐng)域稱霸!

          posted on 2007-10-26 13:59 sun_java_studio@yahoo.com.cn(電玩) 閱讀(10117) 評論(37)  編輯  收藏 所屬分類: NetBeans

          評論

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2007-10-26 14:34 zht

          期待Swing  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2007-10-26 15:25 交口稱贊

          不太可能
            回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2007-10-26 15:46 RaviLi

          @交口稱贊
          不太可能永遠(yuǎn)翻不了身吧。  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2007-10-26 16:47 BeanSoft

          呵呵 還翻身呢. Java 做 UI 目前就沒一個敢說自己能和本地應(yīng)用競爭的(含一切用 Java 開發(fā)的桌面 UI 組件, 如 AWT, Swing, SWT).  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2007-10-26 17:25 cnodin

          eclipse的UI不好嗎?  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2007-10-26 17:32 sun_java_studio@yahoo.com.cn(電玩)

          @cnodin
          如果滿足于Windows默認(rèn)改觀,那么SWT可能適合你,但是swing支持自定義外觀,利用swing可以將界面做得很酷,這一點SWT是做不到的。  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2007-10-26 17:33 sitinspring

          Sun的思想天下無敵,Sun的產(chǎn)品慘不忍睹.  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2007-10-26 17:37 sun_java_studio@yahoo.com.cn(電玩)

          據(jù)可靠消息,VB Delph的程序員極具減少,我想Java之所以在桌面開發(fā)不樂觀是和中國人懶得安裝JVM有很大關(guān)系,如果JVM向IE一樣普及,swing借助跨平臺在桌面打到VB只是時間的問題。  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用[未登錄] 2007-10-26 18:21 robin

          比起Java Web那些低級應(yīng)用,客戶端開發(fā)在技術(shù)上是要求高些。  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2007-10-26 22:23 Matthew Chen

          從誕生以來,Java一直被認(rèn)為是一個擁有面向?qū)ο蟮母呒壵Z言特性并擁有健壯穩(wěn)定運行平臺的技術(shù),它作為語言和平臺的雙重身份而被程序員所接受,編寫富于編程思想和設(shè)計模式體系的軟件產(chǎn)品。
          它的優(yōu)點是虛擬機(jī),使其輕易實現(xiàn)了跨平臺,強大的垃圾回收和相當(dāng)純粹的面向?qū)ο缶幊谭▌t,這些都是上層建筑,而在底層支持的,是一個仿真的機(jī)器,字節(jié)碼的解讀是以jvm的指令序列的方式,在底層,拋開了所有高級語言的特性,那就是接近匯編級別的指令。這樣的層次結(jié)構(gòu),不僅有利于跨平臺的實現(xiàn),更有利于語言技術(shù)的自適應(yīng)發(fā)展,隨時調(diào)整自身的語法和結(jié)構(gòu),與時俱進(jìn)。  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2007-10-26 23:02 Matthew Chen

          Swing是Java平臺的標(biāo)準(zhǔn)桌面實現(xiàn),awt的早期的成型為Java技術(shù)在桌面的發(fā)展奠定了堅實的基礎(chǔ),最底層的實現(xiàn)顯然是對等體來鋪墊的,往上走產(chǎn)生了兩種不同的思路,Swing和SWT,他們生來都是為了一個目的,讓Java更好用,更多人用,Swing是了不起的框架,經(jīng)典的設(shè)計,復(fù)雜而靈活,SWT晚出生一點,它是看著Swing的不足在發(fā)展自己的,它一出生并沒有想過和Swing爭,所以只是從實際的產(chǎn)品除非,滿足實際的需要,只是eclipse用得好了自然而然的想到借鑒它成功的因素,才想著復(fù)用自己的那一套,所以它一出生,就烙著便利軟件產(chǎn)品的特點,即便是到了如今,JFace出來了,RCP出來了,哪一個不都是走在Swing前面,Swing開源的api也是有不少的,Application級的全棧式框架也不是沒人做過,為什么sun從來都沒有加入過JFC中,直到今天,Netbeans來了,帶來了這一些,但還是沒趕上SWT的,用過JFace的人都知道,IBM在其中開發(fā)了多少成熟的組件,Preference,Wizard,一個個很簡單,卻是現(xiàn)代軟件產(chǎn)品中已經(jīng)上升到了經(jīng)典范疇的概念,Swing的api中有嗎?還要復(fù)用多少次才會被加進(jìn)去呢?
          SWT的gc,它同樣可以繪制一切,那它的速度不會比Swing快多少吧?Swing中有象SWT中的FileDialog那樣借助操作系統(tǒng)實現(xiàn)的組件嗎?我用過JFileChooser,速度比FileDialog起碼慢5倍,創(chuàng)建完了不能釋放,以便下次打開保持較快的速度,這期間占用了多少內(nèi)存?跨越的基本是整個產(chǎn)品的生命周期,實際項目中,一個JFileChooser,足夠否決Swing的理由了,何況象JFileChooser一樣慢的,有多少個。SWT的一大弊端是jni,本地方法調(diào)用的時間消耗和內(nèi)存管理成本會在運行時和編程上產(chǎn)生不利的影響,特別涉及純Java對象在本地組件上的呈現(xiàn),會是很大的問題,暫時并沒有好的解決方法,主要是繞過,缺失某些極具表現(xiàn)力的界面效果,而一板一眼,中規(guī)中矩。
          Swing沒有錯,錯的是它身后的SUN,SWT并不是最好的,但它得益于IBM。從今天開始追來得及嗎?除非你讓我在Swing中用FileDialog,既然我已經(jīng)可以多少用些SWT_AWT了。  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2007-10-27 04:33 wing5jface

          >>利用swing可以將界面做得很酷
          這一理由在目前來說,只能視為一種炒作,中看不中用.同意樓上的實際項目中,一個JFileChooser,足夠否決Swing的理由了.Swing沒有錯,錯的是它身后的SUN.

          相對來說本人更喜歡SWT對資源的管理,可以更快更及時清理資源,結(jié)合手動與自動GC的靈活性.

          另外:JRE下載也不是太大的問題的了,2-6M速度的ADSL自動下載安裝運行JWS是很快的,基本上花不了多少時間(比安裝QQ游戲平臺多不了多少時間),用戶都習(xí)慣的了,再說現(xiàn)在加速下載的TOOLS(flashget,迅雷,QQ下載等)有多種選擇,JRE 安裝不再是太大問題,給用戶體驗一下VNC 5800 HTTP全部使用效果就比較清楚的了.
            回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2007-10-27 10:12 BeanSoft

          SWT, Swing 都不是問題, 問題在于: Java 或者 .NET 這樣的虛擬機(jī)跑大型程序, 太吃內(nèi)存了!

          Eclipse, Netbeans, 哪個不是吃內(nèi)存的怪獸, 而且容易出現(xiàn)界面忽然卡住不動的問題.

          .NET 的程序也有這個問題, 一是啟動慢, 二是耗內(nèi)存, 三就是一會不用回來界面就死了. 貌似 Office 2007 用 .NET 開發(fā), 結(jié)果可好了, 也是一樣的問題, 比 Office 2003 慢不是一個級別.

          現(xiàn)在的虛擬機(jī)技術(shù)還是有待繼續(xù)進(jìn)步.  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2007-10-27 16:48 zongxing

          eclipse好像有從從倒退的趨勢呀,這可能是netbeans翻身的一個大好機(jī)會。
          真正的高手做開發(fā)時還是用swing的,像swt這種怪胎,實在不是我們應(yīng)該高興的。  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2007-10-27 17:00 sun_java_studio@yahoo.com.cn(電玩)

          @zongxing
          同意“真正的高手做開發(fā)時還是用swing的”這種說法,但是很少有桌面軟件對外觀要求得很嚴(yán)格,SWT能滿足大多數(shù)客戶。
          SWT和Swing共存,不然Swing和誰競爭去?  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2007-10-29 10:26 wing5jface

          個人覺得SWT與SWING繪制圖形不相上下,暫時看不出SWING在繪圖方面
          比SWT優(yōu)秀多多少,只是swing積累的更多而已

          下面一個使用swt用GC繪制的桌面軟件效果圖
          在windows2000(SUSE,紅帽子,ubuntu效果相同)系統(tǒng)下的顯示效果:
          http://www.ben777.cn/blogjava/swtUIShow1.htm  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用[未登錄] 2007-10-29 11:59 Robin

          @wing5jface
          SWT目前是不支持組件半透明的,JTable,JTree的Render效果SWT也做不到。同意“Swing是做專業(yè)外觀的組件庫”的說法  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2007-11-17 23:18 fxbird

          今天試用了一下nb rc1,界面比原來要清新得多,速度也今非昔比了,估計是得益于jdk1.6的性能提升,提高非常大。幾乎就和windows程序的打開速度一樣快,真是可喜的進(jìn)步,nb發(fā)展的步子越來越快了。是一般開發(fā)java程序的首選工具了,當(dāng)然是指免費中的。

          前面有個人說,swing中沒有快速的文件打開器,不對吧,我記得有個jfiledialog調(diào)用的就是本地文件選擇框啊。eclipse我從一開始用就沒看好它,整個一個垃圾玩意,唯一的優(yōu)點就是免費。都3.3了才實現(xiàn)代碼拖拽  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2007-11-18 15:41 sun_java_studio@yahoo.com.cn(電玩)

          @fxbird
          “eclipse我從一開始用就沒看好它,整個一個垃圾玩意,唯一的優(yōu)點就是免費。都3.3了才實現(xiàn)代碼拖拽”,這叫什么話,eclipse的誕生JBuilder就昨日黃花了,我當(dāng)年是非常喜歡eclipse的,盡管netBeans6.0很強,但是eclipse淪落為垃圾還不至于,代碼拖拽我覺得還是沒有好點,不小心碰一下鼠標(biāo)的話,代碼可就受影響了...  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2007-11-19 08:43 Matthew Chen

          既然提到了代碼拖拽,那我也提一下代碼復(fù)制和文件復(fù)制,eclipse從3.2之前就實現(xiàn)了這兩點,而netbeans直到6才有文件復(fù)制。
          代碼復(fù)制就是你剪貼板中有一份完整的java源文件的文本(注意是文本,不是文件),點選一個包ctrl v,就可以自動生成基于此拷貝文件名的java源文件,文件拷貝類似,也就是說你可以從netbeans中拷一個java源文件的文本粘貼到eclipse中并生成一個獨立的java源文件,卻不能作相反的操作,因為netbeans還不支持,從網(wǎng)上拷代碼下來運行的人就知道這個功能有多劃算了。
          代碼拖拽只是小功能,就如同refactor盡管不是小功能,但讓它在后臺自己運行同樣只是小功能一樣。
          上面還提到j(luò)filedialog,那是基于awt的,和使用swt的filedialog有什么區(qū)別,jfiledialog不能設(shè)置多個filter,功能比起swt也太過有限,swing優(yōu)勢在于仿生,所以jfiledialog可以作為項目中的替代方案,但拙劣的很。
          eclipse還有個功能是大范圍organize import,最大是基于所有包的,netbeans rc1仍未實現(xiàn),且refactor中的包重命名,尚不支持subpackage,速度也很慢,猜想還在完善中,所以,netbeans要走的路其實還很遠(yuǎn),是好是壞還是拭目以待吧。  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2007-11-19 10:10 sun_java_studio@yahoo.com.cn(電玩)

          “從netbeans中拷一個java源文件的文本粘貼到eclipse中并生成一個獨立的java源文件,卻不能作相反的操作”,很贊同。這個很不爽。
          當(dāng)初喜歡eclipse的原因是其安裝完全是解壓縮方式,插件安裝也是拷貝文件夾這么單純,很方便。netbeans雖然也有zip版本,但是不像eclipse有工作空間的概念,這樣一臺機(jī)器可以安裝多個eclipse用于不同開發(fā),而安裝多個netbeans就有沖突。

          我覺得netbeans最大的優(yōu)勢是最快支持Java新標(biāo)準(zhǔn)的IDE。netbeans6.0已經(jīng)比5.5進(jìn)步了許多。說咸魚翻身不為過。  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2007-12-02 22:32 attend

          lz 你好,我對JAVA桌面編程比較感興趣,又不知道從何開始學(xué)起.期待您寫篇學(xué)習(xí)總結(jié),推薦一些書籍等。   回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2007-12-04 10:54 sun_java_studio@yahoo.com.cn(電玩)

          @attend
          從頭來過就從Swing基礎(chǔ)學(xué)起吧,我的建議不要已開始就學(xué)SWT,除非工作需要。入門教材市面上隨便買一本介紹,第一本書不要求太厚,之所以這么說是因為國內(nèi)沒有一本深入講述swing的教程,“厚”完全是羅列代碼和API介紹造成的。下一步應(yīng)該看看http://java.sun.com/docs/books/tutorial/ui/index.html 官方教程。
          要熟悉Java2D和繪圖,這是swing的看家功夫,JList、JTable、JTree、JTextPane這些高級組件越精通越好。
          我覺得swing高手應(yīng)該具備3種技能:自定義組件、編寫L&F、自定義布局管理器。朝著這3個方向前進(jìn)吧  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2007-12-21 12:21 莫言

          Swing其實是一個強大的東西,現(xiàn)在的硬件配置越來越高,以前跑Java吃內(nèi)存過多的問題以后是不存在了的..

            回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用[未登錄] 2007-12-21 13:21 mike

          具有諷刺意味的是..
          java真是因applet才被世人所知...
          后來Java反而服務(wù)器領(lǐng)域大放異彩,反而Java的桌面程序被人冷落...真是風(fēng)水輪流轉(zhuǎn)啊,我覺得有一天Java桌面還會再大放異彩的..
          我認(rèn)為Swing沒能火起來的原因,除了是因為不愿意下載Jre外,還有就是Swing本身是比較難學(xué)的一個東西,以前的VB,Delphi,C++Bulider的開發(fā)人員早已習(xí)慣了用拖曳的方式來畫頁面,界面都是保存成一個資源文件,然后UI邏輯代碼與界面是分開來的,而Swing的思想則是,所有的UI控件與Frame本身就是一個普通的對象Class,連事件對象(Event)也是一個對象,這對于以前許多從VB/Delphi轉(zhuǎn)過來的開發(fā)人中很不習(xí)慣,雖然JBuild也可以通過拖曳方式來畫頁面,但其本質(zhì)只是用來生成Java代碼而已,當(dāng)你修改這代碼后,現(xiàn)逆向恢復(fù)成UI設(shè)計器時經(jīng)常有問題.所以最終不得迫使開發(fā)人員放棄拖曳方式設(shè)計UI,而統(tǒng)統(tǒng)采用面向代碼的方式,因為許多開發(fā)人員認(rèn)為這是一種退步,是落后技術(shù)的表現(xiàn),從而放棄了Swing..其實這是一個非常膚淺的看法,根本沒有理解技術(shù)本身的奧妙.
          事實上,換個角度想一下,將UI不作為一個資源文件保存,而就作為一個對象來看待,不真是一個新的思想嗎?他可以讓你方便的動態(tài)的封裝各種UI..在動態(tài)生成UI時比VB,Delphi方便多了,因為UI本身就是對象,天然的溶為一起!!!
          好好研究一下Swing,你就會發(fā)現(xiàn)其奧妙無窮....
          當(dāng)所有人都在一窩峰搞什么Structs,spring,Habernate這些技術(shù)時,你難道沒發(fā)現(xiàn)這些都只是后臺的技術(shù),而前臺UI端的技術(shù)本質(zhì)上一直停留在JavaScipt上.未來的東西往往就是現(xiàn)在被人忽視的東西  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2007-12-21 22:17 sun_java_studio@yahoo.com.cn(電玩)

          @莫言
          “現(xiàn)在的硬件配置越來越高,以前跑Java吃內(nèi)存過多的問題以后是不存在了的”可別有這種想法啊~,硬件提高不能是程序任意采用耗內(nèi)存方法的理由。  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2007-12-21 22:21 sun_java_studio@yahoo.com.cn(電玩)

          mike,你說的“界面都是保存成一個資源文件”,其實我覺得很好,你這句話真是指點了我,謝謝你!  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2007-12-26 13:42 lishali

          綜上
          大家共同的一個想法,我來說下吧?!
          sun走的技術(shù)路線是極其詭異的,也許走偏鋒就是sun公司的長處,不過可要苦了這里的一群哥們啊!
          哎~~~~~~~~~~~··  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2007-12-26 13:52 sun_java_studio@yahoo.com.cn(電玩)

          @lishali
          “Swing的思想則是,所有的UI控件與Frame本身就是一個普通的對象Class,連事件對象(Event)也是一個對象”,沒什么不好,因為這樣能提供最大程度的靈活性,如果要實現(xiàn)“界面都是保存成一個資源文件”的話,自己寫個Framework支持就可以了。簡化Swing復(fù)雜度,JavaFX就是這樣的思想。  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用[未登錄] 2007-12-29 20:59 Shawn

          JFileChooser 確實太惡心了 加了感官后啟動N慢  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2008-05-24 14:24 一嘯長天

          我還是繼續(xù)我的"低級WEB開發(fā)"吧!^_^  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2008-12-08 00:24 黑蝙蝠

          貌似swing的運用狀況不是很好,何時能翻身?
          最近的金融危機(jī),聽說sun在swing的開發(fā)上又減少了投入,何時翻身?  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用[未登錄] 2009-01-05 22:59 ppoo

          成為桌面霸主,不太可能了,看看java的運行速度就知道了  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2009-01-06 23:40 shukae

          我是專業(yè) Swing / SWT 設(shè)計師
          我用 Swing / SWT 寫專業(yè)金融報價應(yīng)用程式與Applet
          也採用過這兩個 UI 框架的混合設(shè)計

          所以我想我應(yīng)該出來說點話了
          Swing 和 SWT 其實各有其優(yōu)缺點
          如果在同一個基礎(chǔ)點比較下
          效能來說,Swing遠(yuǎn)遠(yuǎn)不及SWT
          而SWT的架構(gòu)遠(yuǎn)不及Swing好
          甚至應(yīng)該說 SWT 比 Swing更加原始

          談到效能,Swing使用 LnF 仿Local OS 風(fēng)格
          整個效能就變得很差很差,原因當(dāng)然就是先畫在記憶體中,才又貼上來
          這還不是為了相容輕元件的搞法,結(jié)果就變得很慢
          而且對於一些屬性支援也不完整,屬性相容並不是很好啦
          不信自己去看看 JTable 的 title ,還有對 Jbutton 設(shè)定前景色
          你就會知道什麼是令人無言....
          但是SWT完全不會有這種問題,效能也極好

          談到易用性
          SWT要在Table的Cell中設(shè)計複雜的顏色和訊息是不容易的
          但是Swing的JTable可以靠Renderer設(shè)計而變得很簡單
          SWT的List也不易作成複雜的List介面,但是使用JList靠 Renderer就可以
          當(dāng)然還有其他設(shè)計上SWT遠(yuǎn)不及Swing的地方
          會有這樣的差異是純SWT根本沒有MVC架構(gòu)設(shè)計
          而Swing本身卻是很漂亮的MVC架構(gòu),致使有這樣的差異

          在商業(yè)實務(wù)上的選擇
          在寫純Java AP上,SWT應(yīng)該是首選
          為什麼呢?
          我只能說10個客戶看到Swing的介面,10個都抱怨不好看
          我還要花時間搞LnF去給客戶選才能讓客戶滿意
          如果要和Local OS一樣的風(fēng)格,卻會讓程式變慢很多
          與其如此,選SWT開發(fā)還不用擔(dān)心這個問題
          如果是開發(fā)Applet,Swing絕對是首選
          雖然SWT也可以開發(fā)Applet,但是要客戶多安裝SWT程式庫
          基本上客戶不是那麼願意去多裝個軟體,更何況還很可能不會安裝哩
          Swing開發(fā)Applet不會有這種問題
          如果元件需要可變成Applet與AP,或是要在AP中嵌入瀏覽器
          那就要採用SWT與Swing的混合設(shè)計
          用SWT做框架主體,使用 SWT_AWT把Swing元件放入SWT容器中
          這樣就可以解決這問題了

          當(dāng)然,可以在Swing中使用 JDIC 程式庫嵌入瀏覽器
          但是那畢竟會有輕重元件的問題,並不好設(shè)計(不是不能做)
          採用SWT就不會有這樣的問題
          也請不要相信JDK7的Swing可以支援很好的嵌入瀏覽器
          不要傻了啦,那只是會慢到爆炸而已,我又不是沒試過
          光那個慢,就不會想用了啦,更不要說商業(yè)應(yīng)用


          另外
          真正在開發(fā)商業(yè)程式
          根本不可能像使用 VB 那樣用拖拉方式去產(chǎn)生UI
          我們都嘛是靠單元設(shè)計和Layout把整個UI組起來
          用拖拉搞得出金融報價畫面?不要傻了!
          況且
          Swing和SWT都只是UI元件
          依據(jù)需求去選擇用那一個,或是混合使用
          根本沒有必要特別偏好那一個
          畢竟真正在商業(yè)應(yīng)用開發(fā),在架構(gòu)設(shè)計上根本就沒差
          自己做MVC的設(shè)計,用Swing和SWT設(shè)計UI....
          講坦白話,差別真的很小....




            回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用[未登錄] 2009-09-17 18:27 明明

          我能向你請教個問題嗎?
          我用JDIC寫了個瀏覽器,在eclipse下能運行,可打包出去就用不了
          我想問你那個jdic.jar還有里面那些dll,exe文件要怎么放...
          不知道你能否幫幫我
          185026621@qq.com  回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2010-03-19 23:21 ~

          可能性極高
          SWT的UI速度會快,是因為UI繪製工作全部交由OS解決
          那為何OS的速度會優(yōu)於Swing??
          關(guān)鍵在於OS完整的支援顯示卡加速。
          JDK5的年代,Swing的繪製,完全是靠CPU,慢的不像話,當(dāng)然不會是SWT的對手
          JDK6後,整個效能大幅提升,因為Swing也開始支援顯卡加速,相關(guān)的繪圖Loading全部轉(zhuǎn)交由顯示卡處理,這樣一來SWT的OS的優(yōu)勢,就會漸漸消失。

          This release introduces a fully hardware accelerated graphics pipeline based on the Microsoft Direct3D 9 API, translating into improved rendering of Swing or Java2D applications which rely on alpha compositing, gradients, arbitrary transformations, filtering and other more advanced 2D operations.
          Since the new pipeline utilizes hardware acceleration capabilities offered by video cards, it is very important that the latest drivers for the cards are installed. Please refer to your system or video card manufacturer for the latest drivers.

          Sun在JDK6加入新的支援,我們不能保證他在這次改版能夠把底層封裝的好,一定有許多需要改進(jìn)的地方,但對於桌面應(yīng)用程式的支援,已經(jīng)往前一大步,期待JDK7.0,一定會有更大的突破。
            回復(fù)  更多評論   

          # re: netBeans6.0咸魚翻身與Swing稱霸桌面應(yīng)用 2010-03-22 11:53 sun_java_studio@yahoo.com.cn(電玩)

          @~
          很高興有人對Swing保持樂觀態(tài)度,我也這樣認(rèn)為。Oracle沒有放棄JavaFX,還有計劃推出桌面PC版的JDK7并與JavaME整合。這都是令人興奮的消息。只可惜,桌面開發(fā)大勢已去,移動Java終端Google可能是領(lǐng)頭羊  回復(fù)  更多評論   

          TWaver中文社區(qū)
          主站蜘蛛池模板: 广西| 邯郸市| 乾安县| 开江县| 宜城市| 连江县| 盈江县| 海阳市| 罗定市| 石柱| 大洼县| 浠水县| 靖远县| 土默特右旗| 万宁市| 建阳市| 电白县| 武胜县| 色达县| 龙州县| 合水县| 皮山县| 出国| 长白| 靖远县| 龙州县| 多伦县| 长丰县| 上饶县| 鄂伦春自治旗| 思茅市| 商丘市| 新宾| 金阳县| 伊春市| 福泉市| 博客| 商丘市| 吉首市| 江华| 尚志市|