读书人

Swing为何不受重视

发布时间: 2012-11-08 08:48:11 作者: rapoo

Swing为什么不受重视

我想在JavaEye发表一些Swing的技术文章,都不知道发布到哪个板里去,JavaEye好像完全无视Java GUI的存在,连一个专门的板块都没有。

我觉得Swing还是非常值得学习和应用的,比如我现在的工作,就是做工作流系统,GUI部分就是使用Swing做的。
Swing为何不受重视?
国外Swing应用很广泛,NetBeans是使用Swing做的,Oracle9i的管理平台应该也是基于Swing的。

Java不只是用来做web的,Java的GUI技术也很成熟,非常值得提倡和应用,一提到Java GUI,大家普遍感觉就是慢,是的,比起C++的QT之类的GUI技术,Java是慢了,但是如果想采用跨平台的GUI界面,其实我们可以选择的并不多,QT开放协议刚刚有所放开,SWT跨平台性,事实证明并不理想,所以除了Swing,如果想做跨平台GUI,还真没多少可选择的方案,不过最重要的是,Swing并不像你想象的那么不堪,Swing其实也可以做出很复杂的界面。
所以建议JavaEye开一个Java GUI的板块,以供我们这些做Java Desktop软件的人来参与到JavaEye之中。


这也不算难看吧,也是可以读懂的,只是读懂的意义也不大,开发的内容不用心这些。像后面的一些action,它是在另外帮你生成一个方法,这方法里你可以任意写上自己的处理代码。
同时,像fileChooser这些:fileChooser.setFileFilter(new FileNameExtensionFilter("ebookMaker项目文件","em"));是自己加上过滤器上去的,虽然不可以直接在上面自动生成的代码改,可是却可以自己订制代码的。
代码太多了,不知道能不能发出去。。 231 楼 darkblue086 2010-04-01 觉得SWING多个方面都有待提升,速度慢是不可否认的,说别人有快的理由(调用windows库之类)也白搭,慢就是慢,你升级了机器变快了,可是我的机器就是慢,别的开发出来的程序就很快,咋整?
然后是IDE部分,不如VS的强大和易用,搞不好手写更慢,VS开发全界面手写的是不多的……
最后是默认的界面方面,对于最终用户来说和其他的软件都不同,很丑,不容易被接受。
功能大家都有,各种软肋一摆,你想要酷炫.net的也能啊,跨平台还有MONO,所以他不被接受的情况是很明显的 232 楼 tottichen 2010-04-01 zkgale 写道周五,我们公司开会,
经理有句话:
我们现在接项目,只找BS,要是有点象CS的,我们都不做...
公司和公司之间不一样的嘛,不过你们老板有点强悍的。 233 楼 iooyoo 2010-04-02 觉得swing支持工具还是不够吧 234 楼 hypercube1024 2010-04-06 EdwardWorld 写道EdwardWorld 写道vlinux 写道swing的所有组建都是画出来的,所以我们可以很方便的进行hack,我局限于仅仅知道Java的UI,所以这点不知道算不算他的优势。

话说回来,在RCP衰败的年代,为什么要坚守这个阵地呢?
BOSS的管理界面都在向WEB迈进了,一个短信发送平台为啥还要坚持呢?
工作流用WEB不也一样可以做么,而且更易于使用和维护,如果你不是为了之前的项目,为什么还要坚持呢?

想起JavaEye之前有个帖子是在说:我们讨论XX技术是否NX的时候,一定要统一下双方的需求范围,否则在这个领域Swing很有用,但是到了另外一个领域却一无是处。我觉得他说得是非常有道理的,所以就你所涉及到的短信发送平台而言,我个人认为用Swing是很不划算的哦

如果我需要调用本地的dll来控制硬件,web能做到么?

如果我需要加载硬件驱动程序,控制传真卡发送传真,web能做到么?
如果我需要从FTP上下载几千个文本文件,然后ETL导入本地数据库,web能做到么?
如果我想通过shell控制Linux服务器,web能做到么?
如果我想定时执行存储过程,web能做到么?这一条可能web能做到,但是如果我需要自动向存储过程传递的参数值是通过读取本地文本文件里的内容,web能做到么?
这些功能,在我目前参与的工作流系统里,都是最基本的功能,如果使用web开发,你能做到么?
最后,如果使用纯web,你连画流程那个界面都实现不了,假如你非要用JavaScript来实现,那么我问你,你的JavaScript代码量比Swing少么?恐怕要比Swing复杂程度多出一个数量级。

B/S 和C/S本来就是各有所长,如果你非要把一切都使用web来代替,能代替得了还说得过去,关键是有些功能你根本就代替不了,最简单的例子就是,你使用web来开发一个IDE试试。

你说的这些貌似现在都有web版的啊,包括IDE
235 楼 meiowei 2010-04-06 geminiyellow 写道…………一年前的帖子,你们真能挖。

前两天用WPF做了一下那些水晶按钮。
比起用Swing做出好看的界面让人激动的感觉来说,
WPF真的不让我激动,好像是必须的。

不过swing情节还是有的。毕竟第一个工程就是拿Swing做界面。
WPF你也可以把它扯进来,用WPF画了一个工作流画面,现在想起来,泪流满面
236 楼 HeDYn 2010-04-06 tcrct 写道如果swing能够将发布时的JRE精简的话,估计反对的声音会少很多。
相比较.net 3.5 的几百M,jre已经非常精简了 237 楼 HeDYn 2010-04-06 renxiaoya0 写道shiren1118 写道revivemydark 写道其实swing最重要的就是两点:
1,applet ,
2,opengl ,
可惜sun这两方面都没做好,就算现在做好了也晚了


applet本身是没有问题的,问题出在jre的体积


其实现在已经不能算问题了,很多人连内存都不用释放,还在乎那点硬盘空间吗?


java2D ,3D都还可以,opengl 好像是有第三方实现

是啊,最致命的是jre的体积,导致部署极困难(不包括企业应用),
javafx还有applet不知道怎么搞,还要下个十几兆的jre,一两兆的网速下完要十几分钟,安装也要几分钟,干脆去死好了

你下载过.net3.5没?安装过.net没? 238 楼 Ceil 2010-04-07 事实上在Jre 1.7试用版出现之后Swing的速度提升了很多啊......
Netbeans的启动时间也缩短了一半. 239 楼 fnet 2010-04-18 唯B/S万岁的家伙可能不知道,

国内很多大公司的ERP的C/S产品都是Swing的。

唯SSH的家伙可能不知道,

很多产品和平台都是基于RPC+EJB。 240 楼 xiaosa032715 2010-04-18 zkgale 写道周五,我们公司开会,
经理有句话:
我们现在接项目,只找BS,要是有点象CS的,我们都不做...

哈哈哈哈,有点意思 241 楼 ihaokan 2012-06-29 橡树心 写道国外还是比较重视Swing的,很多项目的都是用Swing在做,用Jbuilder和NetBeans生成的界面,代码部分很难阅读,但是手写布局效率又很低,我感觉只要解决这个问题,Swing还是很有前途的,我曾经做过国外的一个项目就是用Swing+XML布局完成的,客户要求不能用可视化工具编写GUI,只能手写,运算速度也不慢,但就是开发效率太低了,50%的缺陷都是跟界面布局有关的,Swing用的好,做出来的效果相当漂亮。
唉,那个jtable把我折腾死了,超浪费时间啊。 242 楼 rainv 2012-08-28 喜欢swing的继续给swing加油吧,呵呵。我也是学过swing,swing慢我感觉就是Java虚拟机的自动内存回收没做好引起的,和Java执行效率没关系。Java让我又爱又恨啊。 243 楼 rainv 2012-08-28 Java要是加个配置选项让自己能释放对象就好了。new delete

读书人网 >软件架构设计

热点推荐