`
lgx522
  • 浏览: 126086 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

借JavaFX之风,Swing终于熬到了出头之日

    博客分类:
  • Java
阅读更多
前几天看了点新闻,一是说JavaFX1.0的推出,二是是说Sun停止了对SwingX的资助,由此激怒了社区。
由此一些人推论Sun已经全力押宝JavaFX,Swing将沦为鸡肋。而后Sun的高管自然出面表态,Swing和JavaFX两手都要硬。

由于本人一直从事企业信息系统的管理和研发,平日对Swing还是多有涉猎,看到这些传闻不免要探个究竟。其实最近忙于管理工作,技术上已多日不熟了。于是下载了NetBeans6.5 JavaFX版,顺便装了个JDK1.6 update11,这一试却是大获惊喜,同时对Sun的JavaFX策略深感怀疑。

惊喜在于经过多年的等待和失望,Swing居然真正快了起来,启动速度几乎提高了一倍以上。这对于Swing的爱好者们无异打了一针鸡血!老实说,Swing一直以来是设计精品、性能垃圾,从Applet时代开始,大家就一直是恨铁不成钢,期待了很多年了,直到期待到绝望。以至于本人怀疑Swing的性能也“只能如此了”。于是大家才会去折腾设计上莫名其妙的Swt,才会毅然决然地把Applet扔到一边,硬啃代码丑陋的Flex。经过多年的批判,很多初学者早已习惯把“Swing很烂”当做公理。其实经过多年发展和实践,Swing的架构设计是超优秀,跨平台也是目前最完善的,“慢”才是Swing的真正硬伤。可惜Sun一直对这个问题视而不见,才导致了这种明珠暗藏的局面。

也许Sun还是要靠买高端的服务器挣钱吧,所以从来对“慢”这个问题相当麻木。以至于众多从Java时代成长起来的程序员已经逐渐习惯了“慢”,甚至找出各种借口说“慢”已经不是问题。结果如何呢,EJB渐成笑柄,而Swing这种超经典GUI(除MS的各大系统级厂商由于要跨平台,故Swing是GUI首选)总是令人不满,根本性的问题其实还是“慢”,这甚至让爱好者都难于启齿。与之相对的是,MS恰恰是最重视“ 快、慢”问题的,君不见Windows的GUI就是快,MS的软件上手也是快,随之是滚滚而来的钞票。等Vista一“慢”,连MS都不好使了,大家不买帐了。所以对于用户而言,“使用快”永远是个硬道理。其实对于程序员而言,“开发快”也永远是个硬道理,只不过在这方面是相对的,面对不同规模和生命周期的系统,各种技术是难有定论的。几经折腾,笔者还是坚守中庸主义的Java。

这几年RIA之风日渐疯狂,人们早起习惯大谈Flex、 Ajax,甚至新出炉的SliverLight,全然忘记了Java起家时的Applet在十多年前早已是RIA的先行者。作为后起之秀的Flex强在哪里,其实最主要是“快”,运行快、安装快、开发快。或许迟钝的Sun终于感到了耻辱,才开始下决心解决这个“慢”的问题。NetBeans的GUI设计器算是解决了开发“慢”的问题,更重要的是JRE update10之后终于可以让爱好者享受一下不输于winform和swt的速度感了。以Swing经典的架构设计、完善的跨平台特性,优秀的可扩展性,笔者实在找不到不用Swing的理由了。以现在而论,针对Internet的JavaFX尚不完善(连NetBeans都不能可视化设计,且标记化的语言实在是够乱的),大家不必胡乱跟风。但企业应用则可以好好考虑一下JApplet或者Swing Application,与其死磕乱糟糟的JS和Flex(对于习惯了Java的程序员来说),不如享受一下All in Java的乐趣。
分享到:
评论
105 楼 wxq594808632 2009-10-14  
rehte 写道
lgx522 写道
5:这点赞同。虽然庞大是由于jvm的丰富功能而来,但sun的确有必要做一个纯粹针对客户端的精简jre(大半年前一直有传闻,可惜到目前为止仍不放出,可见sun对用户的一贯迟钝)。

Java 6 Update 10(现在是11)的Kernel版已经发布了,大小只有0.20M(207K),安装过程中下载剩余部分,总共大概不到4M。

这个必须在线安装吧..有没有完整的..
104 楼 xjlnjut730 2009-06-12  
支持Swing,也支持JavaFx,虽然有点奢求,不过还真是希望能看到all in Java的出现 ~呵呵~
103 楼 xzqttt 2009-04-27  
rehte 写道
本人多年来一直力挺Swing,死不悔改,至今仍想为Swing的普及做努力,我为Ecipse平台开发了一款类似于NetBeans界面设计工具的插件,虽然目前稳定和质量上不是太好,但是功能上已经相当好用了,可以用来替换VE了,这款工具在:
http://code.google.com/p/visualswing4eclipse/
我在JavaEye写了一篇文章介绍:
http://www.iteye.com/topic/208787
在EclipseZone也写了篇文章介绍:
http://eclipse.dzone.com/announcements/visual-swing-designer-eclipse
都获得不少好评。
另外现在的Swing绝对不是你想象丑、慢、功能弱,真是和开发者对于Swing的掌握程度有关,我写过一些博客介绍Swing技术,虽然已经很长时间不更新了,但是我觉得有助于消除大家对于Swing的偏见:
http://blog.sina.com.cn/swingjava
http://blogs.sun.com/swing
但是可惜的是,很少Java开发者关注使用Swing开发,尤其是国内,尽管现在的Swing的已经今非昔比了,这真是让人心寒。
希望大家回头看一下现在的Swing,尤其是Java 6 Update 10之后的Swing,配合NetBeans的界面设计工具,或者Eclispe上的界面设计工具(包括我的),看一看,给Swing和Applet技术再一次的机会,绝对会让你惊喜的。


没想到在这里能见到你,真正的swing高手,呵呵,如果可以的话,方便留下一个联系方式发到我邮箱么,有些问题可能还要请教你,我邮箱:xzqttt(at)gmail.com
102 楼 alang 2009-02-07  
用友NC产品线,客户端就是Applet。貌似java平台的erp基本上都是Applet,如sap、oracle等的最新产品线。
101 楼 wukairobin 2009-02-06  
楼主给JAVA的程序员打了一剂强心针,看着很舒服。
100 楼 baiyangshu20081104 2009-02-02  
看来有必要重新回顾一下Swing了。
99 楼 carlkkx 2009-02-02  
grandboy 写道
以前用Swing的默认的布局很不好用, 不知道现在改了没有。以前用过一个开源的布局框架,不过忘记叫什么了。

现在swing有GroupLayout了,Netbeans设计器用的就是它。
98 楼 grandboy 2009-02-01  
以前用Swing的默认的布局很不好用, 不知道现在改了没有。以前用过一个开源的布局框架,不过忘记叫什么了。
97 楼 icewubin 2009-01-22  
fxbird 写道
swing设计也许好,但用起来麻烦,也没有一套好用的db组件,用它来开发,会很累。不信就试试。

现在一般都有中间层,还要好用的DB组件做什么,或者说你有见谁吹捧Flex的DB组件如何好用么?
96 楼 fxbird 2009-01-22  
swing设计也许好,但用起来麻烦,也没有一套好用的db组件,用它来开发,会很累。不信就试试。
95 楼 yiluxiangbei 2009-01-21  
一直以来都力挺Swing,虽然现在开发没有用上,不过还是支持Swing
94 楼 tomcatlee2003 2009-01-20  
感觉flex也不错
93 楼 淹不死の鱼 2009-01-20  
you_meng 写道
不在于我用不用,在于我的公司用不用而已


有时候真的觉得,除了公司要求用的,已经很难有精力去挺之外的技术了。。。目前正艰难滴在Flex中爬行。。。
92 楼 xpdz 2009-01-16  
Swing 有了好的开发环境NB,应该能快速搭建桌面应用了。不过对于不是非得跨平台的应用,Swing不是首选,感觉开发速度还是比较慢,第三方组件也不如win下的丰富

Swing有组件级的MVC Framework,不知道有没有应用级的MVC Framework?
之前听说过一个TikeSwing,不知道现在还活着不。。。
91 楼 xiakq 2009-01-15  
越搞越复杂,一点儿也不好
90 楼 水中氧 2009-01-15  
czx566 写道
javaFX没感觉快~

qwe
wqe
qweqweqweqwe
89 楼 hukai9200 2009-01-15  
Groovy 开发 Swing 不错的。
88 楼 tetsu.soh 2009-01-15  
想作GUI还是C#好了,MS的windows不用说。Linux和Mac借助Mono。最大的好处是原先开发Windows的开发人员,不用学习新的语言就扩展了开发范围。
87 楼 rehte 2008-12-31  
lgx522 写道
5:这点赞同。虽然庞大是由于jvm的丰富功能而来,但sun的确有必要做一个纯粹针对客户端的精简jre(大半年前一直有传闻,可惜到目前为止仍不放出,可见sun对用户的一贯迟钝)。

Java 6 Update 10(现在是11)的Kernel版已经发布了,大小只有0.20M(207K),安装过程中下载剩余部分,总共大概不到4M。
86 楼 lgx522 2008-12-31  
steeven 写道
偶也玩swing很久了,几个龌龊的地方:
1. 布局,自带的几个丑陋家伙很难让人上手。NB最后也另外自带布局。
2. 颜色,灰不拉几的一辈子了,谁看了都觉得土
3. java.awt, javax.swing然人迷糊,感觉就是个阑尾
4. applet,本来也不难,如果能直接运行并且不需要签名就更爽了。
5. 另外,jre庞大的身躯也让人望而生畏,如果所有lib能像ubuntu的apt一样根据需要下载会更好。

sun一直在想各种idea, 但是总不提供一个好用的基本实现。你能想想在医院看病,但是要到别的地方手术吗?


1、2:看不顺眼,几条语句换成系统默认的界面就可以了。
3:awt是历史问题,有兴趣研究一下架构,基本上用不着了。
4:这倒是个烦人事,不过applet本就是以“安全”闻名。大范围用当然要放开权限,内部应用基本上是“permission java.security.AllPermission;”了。
5:这点赞同。虽然庞大是由于jvm的丰富功能而来,但sun的确有必要做一个纯粹针对客户端的精简jre(大半年前一直有传闻,可惜到目前为止仍不放出,可见sun对用户的一贯迟钝)。

相关推荐

Global site tag (gtag.js) - Google Analytics