关于Swing的六个谎言
程序员文章站
2022-05-02 20:03:54
...
你觉得Swing很慢吗?你觉得Swing界面很难看吗?你觉得Swing即将死亡了吗?...Adam Bien 来告诉你:谎言,这一切都是谎言
Adam Bien在他的博客Six Swing Lies中提到关于Swing的六个不真实的说法:
1。Swing很慢
我大约从1999/2001年间开发我的第一个Swing项目,那个时候用的还是P4 400 MHz,128 MB - 256 MB RAM配置。很多软件都存在性能问题,但Swing没有。确实,经常有人会造成Swing UI block的情况,但我认为这不能归为Swing性能问题。
2。Swing太过复杂
在我看来,Swing简单易懂。这儿确实有着各种UI组件以及一些良好设计的事件,但对一个大型的应用来说,这些是必须的。我曾给一些非Java程序员介绍过Swing,在一个较短的时间后他们就能用Swing构建出令人惊讶的复杂的应用。
(Eastsun按:说Swing简单易懂我觉得有点过了;不过Swing设计的很优雅这是事实。而且我也认为对于一个可用的UI库来说,复杂是不可避免的。如果Java能够早点支持闭包的话,其事件机制应该可以简化不少。)
3。Swing界面很丑陋
总地来说,Swing界面好不好看,取决于你的设计水平。Swing本身并没有任何限制。况且,这里已经有一些非常棒并且免费的Look&Feel:substance, nimbus,napkin。
(Eastsun按:这个napkin很好玩:-))
4。Swing与操作系统集成不好,看起来不够native
Eclipse, Office 2007难道就native了吗?Eclipse看起来确实不错,但并不像Vista。而且,看起来是不是native,在项目中并没有这种需求。此外,与操作系统集成在Java6中已经得到很大的改进。
5。JavaFX将会取代Swing
JPA 会取代JDBC, Swing Java 2D 或 JSF吗?目前大部分JavaFX组件是基于Swing的,而且现在Swing广泛应用在大公司中。
6。因为Sun不再支持SwingX,Swing将很快死亡
Swing是JDK的一部分。Java的"deprecated"机制到现在为止事实没有从JDK中移除过任何东西。况且即便在JDK1.6+中出现的JConsole与VisualVM也是基于Swing的。Netbeans也是基于Swing的。还可以参看这篇博客。
Adam Bien在他的博客Six Swing Lies中提到关于Swing的六个不真实的说法:
1。Swing很慢
我大约从1999/2001年间开发我的第一个Swing项目,那个时候用的还是P4 400 MHz,128 MB - 256 MB RAM配置。很多软件都存在性能问题,但Swing没有。确实,经常有人会造成Swing UI block的情况,但我认为这不能归为Swing性能问题。
2。Swing太过复杂
在我看来,Swing简单易懂。这儿确实有着各种UI组件以及一些良好设计的事件,但对一个大型的应用来说,这些是必须的。我曾给一些非Java程序员介绍过Swing,在一个较短的时间后他们就能用Swing构建出令人惊讶的复杂的应用。
(Eastsun按:说Swing简单易懂我觉得有点过了;不过Swing设计的很优雅这是事实。而且我也认为对于一个可用的UI库来说,复杂是不可避免的。如果Java能够早点支持闭包的话,其事件机制应该可以简化不少。)
3。Swing界面很丑陋
总地来说,Swing界面好不好看,取决于你的设计水平。Swing本身并没有任何限制。况且,这里已经有一些非常棒并且免费的Look&Feel:substance, nimbus,napkin。
(Eastsun按:这个napkin很好玩:-))
4。Swing与操作系统集成不好,看起来不够native
Eclipse, Office 2007难道就native了吗?Eclipse看起来确实不错,但并不像Vista。而且,看起来是不是native,在项目中并没有这种需求。此外,与操作系统集成在Java6中已经得到很大的改进。
5。JavaFX将会取代Swing
JPA 会取代JDBC, Swing Java 2D 或 JSF吗?目前大部分JavaFX组件是基于Swing的,而且现在Swing广泛应用在大公司中。
6。因为Sun不再支持SwingX,Swing将很快死亡
Swing是JDK的一部分。Java的"deprecated"机制到现在为止事实没有从JDK中移除过任何东西。况且即便在JDK1.6+中出现的JConsole与VisualVM也是基于Swing的。Netbeans也是基于Swing的。还可以参看这篇博客。