你覺(jué)得Swing很慢嗎?你覺(jué)得Swing界面很難看嗎?你覺(jué)得Swing即將死亡了嗎?...
Adam Bien 來(lái)告訴你:謊言,這一切都是謊言
Adam Bien在他的博客
Six Swing Lies中提到關(guān)于Swing的六個(gè)不真實(shí)的說(shuō)法:
1。Swing很慢
我大約從1999/2001年間開(kāi)發(fā)我的第一個(gè)Swing項目,那個(gè)時(shí)候用的還是P4 400 MHz,128 MB - 256 MB RAM配置。很多軟件都存在性能問(wèn)題,但Swing沒(méi)有。確實(shí),經(jīng)常有人會(huì )造成Swing UI block的情況,但我認為這不能歸為Swing性能問(wèn)題。
2。Swing太過(guò)復雜
在我看來(lái),Swing簡(jiǎn)單易懂。這兒確實(shí)有著(zhù)各種UI組件以及一些良好設計的事件,但對一個(gè)大型的應用來(lái)說(shuō),這些是必須的。我曾給一些非Java程序員介紹過(guò)Swing,在一個(gè)較短的時(shí)間后他們就能用Swing構建出令人驚訝的復雜的應用。
(Eastsun按:
說(shuō)Swing簡(jiǎn)單易懂我覺(jué)得有點(diǎn)過(guò)了;不過(guò)Swing設計的很優(yōu)雅這是事實(shí)。而且我也認為對于一個(gè)可用的UI庫來(lái)說(shuō),復雜是不可避免的。如果Java能夠早點(diǎn)支持閉包的話(huà),其事件機制應該可以簡(jiǎn)化不少。)
3。Swing界面很丑陋
總地來(lái)說(shuō),Swing界面好不好看,取決于你的設計水平。Swing本身并沒(méi)有任何限制。況且,這里已經(jīng)有一些非常棒并且免費的Look&Feel:substance,
nimbus,
napkin。
(
Eastsun按:
這個(gè)napkin很好玩:-))
4。Swing與操作系統集成不好,看起來(lái)不夠native
Eclipse, Office 2007難道就native了嗎?Eclipse看起來(lái)確實(shí)不錯,但并不像Vista。而且,看起來(lái)是不是native,在項目中并沒(méi)有這種需求。此外,與操作系統集成在Java6中已經(jīng)得到很大的改進(jìn)。
5。JavaFX將會(huì )取代Swing
JPA 會(huì )取代JDBC, Swing Java 2D 或 JSF嗎?目前大部分JavaFX組件是基于Swing的,而且現在Swing廣泛應用在大公司中。
6。因為Sun不再支持SwingX,Swing將很快死亡
Swing是JDK的一部分。Java的"deprecated"機制到現在為止事實(shí)沒(méi)有從JDK中移除過(guò)任何東西。況且即便在JDK1.6+中出現的JConsole與VisualVM也是基于Swing的。Netbeans也是基于Swing的。還可以參看這篇博客。