`
EdwardWorld
  • 浏览: 28366 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Swing为什么不受重视

阅读更多

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

我觉得Swing还是非常值得学习和应用的,比如我现在的工作,就是做工作流系统,GUI部分就是使用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之中。

纠错:我在跟帖中说QT编写的软件release版体积近百兆,这么表述是错误的,因为我把调试的QtCored4.dll(17.8兆)和QtGuid4.dll(64.3兆)也计算在内了,这两个动态链接库不是必须的,特此纠正,感谢各位朋友的热烈讨论。

 

  • 大小: 549.5 KB
分享到:
评论
23 楼 菲利浦思 2009-04-26  
Eclipse RCP我觉得不错
22 楼 newlife111 2009-04-26  
我的天,swing的缺点到了你这里都是“不必要”“不屑”,“出了问题,不是自己的问题”,要是做产品是你这种态度,等着垮台吧。
产品都是讲究用户体验的,为什么不受重视,因为用的人少,为什么人少,因为用户体验不好。我当时下了集成glassfish的netbean体验体验,我真想骂人,整体界面加上字体歪歪斜斜的搞得我眼睛疼死,立马删了,以后就没有碰过netbean。
ps:java2D和3D还是非常吸引人的,至少我用jfreechart生成的图形效果就觉得很不错,但是我不看好他的桌面应用,而是看好他在手机这块的应用。
21 楼 EdwardWorld 2009-04-26  
akiraray 写道
Swing慢的问题不只是在windows特有的……
放在任何一个linux桌面版上那是更严重了……
swing的话……windows下肯能是稍微慢,不过个人感受swing的程序跑在笔记本上那是慢的不行……跑在开了特效的ubuntu上
对不起……根本运行不起来
可是头疼的是netbeans和sql-dev又都是swing写的……

要是sun哪天能把swt也加到jdk里,那么swt发布需要带上20多M的lib的缺点也基本消失了 = =!

“放在任何一个linux桌面版上那是更严重了”
这个结论我不知道你是怎么得出来的,在Ubuntu上根本运行不起来,可能是程序本身有异常,有时候程序本身有异常,但是勉强能显示窗口,也是会有慢的感觉。
20 楼 akiraray 2009-04-26  
Swing慢的问题不只是在windows特有的……
放在任何一个linux桌面版上那是更严重了……
swing的话……windows下肯能是稍微慢,不过个人感受swing的程序跑在笔记本上那是慢的不行……跑在开了特效的ubuntu上
对不起……根本运行不起来
可是头疼的是netbeans和sql-dev又都是swing写的……

要是sun哪天能把swt也加到jdk里,那么swt发布需要带上20多M的lib的缺点也基本消失了 = =!
19 楼 skzr.org 2009-04-26  
先见阿,我还是觉得swing并不慢,现在的jre已经足够快了,而且机器也足够bt了,起码都是2core
对于eclipse的应用我觉得融合了java的跨平台也融合了速度
java的gui觉得很有前途,在行业软件或者富客户端中,关键是现在手机兴起了,我不打算为了手机而再去学一门语言了,直接用java开发ui就好了:-)
18 楼 whaosoft 2009-04-26  
cs 我会用 vb c# c++ flex 做
java的 swing~ 其实我就是感觉过于难看 而其没用很好的 可视化ide~~
17 楼 EdwardWorld 2009-04-26  
night_stalker 写道
慢一点就忍了,功能是很不错的,但至少一个字得好好的显示出来吧…… output窗口那些歪歪扭扭的算什么?

netbeans 算是比较优秀的 swing gui 应用吧? 不那么优秀的就更别提了。

netbeans output 锯齿怎么这么厉害…… 这还是调大了的,原本根本看不见……
打开后会做 index 什么的挠一会,狂读硬盘。


visual studio 的 output 窗口字体是可以调的,总体积达数 G,但是启动速度非常快,体验很流畅。而且界面很简洁。


code blocks 的字体虽然小了点,但至少工整清晰。整体非常有 wxWidget 特色。



Visual Studio所需要的GUI类库,在Windows启动的时候,已经加载完毕,所有的微软的程序都是调用使用Windows本身已经加载到内存中的类库,随意非常快是正常的,就是100G的软件打开,微软也可以让他飞快,况且你说的Visual Studio可能是C语言编写的,根本不能可Java这样的基于虚拟机的语言来比较,就算Visaul Studio也是使用基于虚拟机的.NET框架程序来写的,微软把自己的.NET预加载到内存中,然后和自己开发的软件高度整合优化,也是速度飞快的,作为外人的Java根本就不能和Visual Studio比较。

Eclipse之所以快,是因为它也是调用Windows现成的类库,快不是Eclipse的功劳。

如果程序不调用Windows的系统类库来渲染窗口,那么即使C++写的程序,也是能感觉到慢的,比如QT使用自己的GUI渲染技术,一个发布版本的QT,加上QT类库的dll,能有上百兆的体积,即使你只写一个Hello World,也是上百兆,因为QT自己的核心库:mingwm10.dll、QtCore4.dll、QtCored4.dll、QtGui4.dll、QtGuid4.dll加起来就有94.7兆。QT启动速度虽然比Java快,但是也是比VC++编写的程序慢的。

你现在接触到的Windows下的所谓快的软件,都是调用Windows本身的类库,当然快了。

至于输出窗口的字体,我觉得现在的样式已经很好了,我完全看不到你说的锯齿,我这边字体显示也正常,在Netbeans 6.7里,输出窗口会有改进,但是我认为那是完全没有必要的,输出窗口提供一个搜索功能就可以了,输出窗口不是Dreamweaver 编辑器,没有必要做那么华丽。
16 楼 night_stalker 2009-04-26  
慢一点就忍了,功能是很不错的,但至少一个字得好好的显示出来吧…… output窗口那些歪歪扭扭的算什么?

netbeans 算是比较优秀的 swing gui 应用吧? 不那么优秀的就更别提了。

netbeans output 锯齿怎么这么厉害…… 这还是调大了的,原本根本看不见……
打开后会做 index 什么的挠一会,狂读硬盘。


visual studio 的 output 窗口字体是可以调的,总体积达数 G,但是启动速度非常快,体验很流畅。而且界面很简洁。


code blocks 的字体虽然小了点,但至少工整清晰。整体非常有 wxWidget 特色。

15 楼 akiraray 2009-04-26  
EdwardWorld 写道
EdwardWorld 写道
laiseeme 写道
作这个的不多了   国外多  我们公司那个有以前jbuilder的  代码那个难看亚

JBuilder生成的Swing代码没有看过,但是Netbeans生成的Swing代码很规范,没有一点冗余,说Netbeans生成的代码冗余的人,多半是写不出来规范的Swing的。

Swing是SUN的标准,Netbeans是SUN主推的IDE,难道SUN生成的Swing代码,比你自己的更冗余,更不规范?

NB6.5做Swing我也用过,代码相当华丽,比起swt builder来说很帮……
但是Swing的缺点肯定还是 慢慢慢……swt的显然快多了……
14 楼 EdwardWorld 2009-04-26  
EdwardWorld 写道
laiseeme 写道
作这个的不多了   国外多  我们公司那个有以前jbuilder的  代码那个难看亚

JBuilder生成的Swing代码没有看过,但是Netbeans生成的Swing代码很规范,没有一点冗余,说Netbeans生成的代码冗余的人,多半是写不出来规范的Swing的。

Swing是SUN的标准,Netbeans是SUN主推的IDE,难道SUN生成的Swing代码,比你自己的更冗余,更不规范?
13 楼 EdwardWorld 2009-04-26  
laiseeme 写道
作这个的不多了   国外多  我们公司那个有以前jbuilder的  代码那个难看亚

JBuilder生成的Swing代码没有看过,但是Netbeans生成的Swing代码很规范,没有一点冗余,说Netbeans生成的代码冗余的人,多半是写不出来规范的Swing的。
12 楼 EdwardWorld 2009-04-26  
EdwardWorld 写道
night_stalker 写道
就是因为受不了难看缓慢的 Netbeans,才讨厌 Swing 的 ……

我觉得NetBeans的布局最适合,我喜欢中规中矩的布局,Eclipse那种圆角Panel,我觉得过于华而不实,IDE是用来使用的,不是用来观赏的。

其实使用Swing做出Eclipse那种界面效果也未尝不可,例如我的工作流建模界面,就可以把皮肤调成和Eclipse一样的效果,但是Netbeans之所以不做成Eclipse那样的花哨,是因为不屑。
11 楼 EdwardWorld 2009-04-26  
night_stalker 写道
就是因为受不了难看缓慢的 Netbeans,才讨厌 Swing 的 ……

我觉得NetBeans的布局最适合,我喜欢中规中矩的布局,Eclipse那种圆角Panel,我觉得过于华而不实,IDE是用来使用的,不是用来观赏的。
10 楼 EdwardWorld 2009-04-26  
云中苍月 写道
SWING是非主流理由就是:慢!慢!!慢!!!

那么你说什么GUI快呢?
如果你硬要说非Java的GUI,我也没有办法。
9 楼 云中苍月 2009-04-26  
SWING是非主流理由就是:慢!慢!!慢!!!
8 楼 night_stalker 2009-04-25  
就是因为受不了难看缓慢的 Netbeans,才讨厌 Swing 的 ……
7 楼 laiseeme 2009-04-25  
作这个的不多了   国外多  我们公司那个有以前jbuilder的  代码那个难看亚
6 楼 EdwardWorld 2009-04-25  
zkgale 写道
周五,我们公司开会,
经理有句话:
我们现在接项目,只找BS,要是有点象CS的,我们都不做...

自己先怕了。呵呵。
5 楼 zkgale 2009-04-25  
周五,我们公司开会,
经理有句话:
我们现在接项目,只找BS,要是有点象CS的,我们都不做...
4 楼 EdwardWorld 2009-04-25  
fsfish 写道
个人感觉桌面应用不是JAVA的强项,我也做过AWT SWING SWT的项目,感觉确实不如VB.DELPHI等快速开发工具方便和便捷,效率上也没有优势,不过如果看JDK的那些JAVA2D JAVA3D的DEMO确实挺赏心悦目的

那是因为你用Eclipse

相关推荐

    AWT与Swing使用区别

    - **Swing**:Swing组件是轻量级的,它们不依赖于底层操作系统,而是完全由Java实现。这使得Swing组件具有跨平台的一致性,并且提供了更丰富的功能和自定义选项。 2. **组件的扩展性和可定制性** - **AWT**:AWT...

    swing开发课件,学习GUI的课程

    Swing的一个重要特性是轻量级,这意味着它不依赖于操作系统提供的GUI组件,这使得Swing的应用程序具有更好的跨平台兼容性。 Swing提供了模型-视图-控制器(MVC)架构,使得代码更加结构化和可维护。例如,JTable...

    Swing做的人事管理系统

    Swing是轻量级的,因为它不依赖于操作系统提供的UI组件,这使得Swing应用具有跨平台性。在这个人事管理系统中,Swing被用来设计和实现图形用户界面,包括菜单、对话框、表格和其他交互元素。 2. **SQL Server数据库...

    swing登录注册界面设计

    学习和掌握swing登录注册界面设计,对于开发者来说,不仅是学习Java Swing开发基本技能的过程,也是提升软件开发能力和效率的重要途径。通过构建出既实用又美观的界面,开发者可以为用户提供更优质的体验,从而提升...

    Java+Swing+Mysql实现通讯录管理系统

    总的来说,这个“Java+Swing+Mysql实现通讯录管理系统”是一个集成了Java后端处理、Swing图形界面设计和MySQL数据库管理的实用应用,它展示了如何将这些技术有效地结合在一起,为用户提供一个便捷的通讯录管理工具。...

    Java-推箱子.zip

    注释的存在意味着代码的可读性和可维护性得到了重视,这对于后续的修改和优化至关重要。 总的来说,这个"Java-推箱子"项目涵盖了Java GUI编程、游戏逻辑设计、对象建模和事件驱动编程等多个方面的知识。通过学习和...

    计算器(TCalculator)

    【描述】该计算器应用的设计目的是为用户提供一个方便的计算环境,无论是进行日常计算还是解决复杂的数学问题。用户可以通过图形用户界面(GUI)直观地输入数字和选择运算符。作者鼓励用户如果有任何疑问或建议,...

    最新版Substance5

    Substance 是一个流行的 Java Swing 主题库,它允许开发者为他们的 Java 应用程序提供丰富的、自定义的外观和感觉。这款最新版 Substance 5...对于那些重视用户界面设计的开发者来说,Substance 是一个不可或缺的工具。

    xcode-maven-plugin-1.4.1.zip

    开源项目通常会有活跃的社区支持,为开发者提供了丰富的学习和协作机会。 在压缩包"swing-shortcut-manager-master"中,我们可能找到以下内容: 1. 项目的源代码文件:包括`.java`文件,这些是用Java语言编写的源...

    Java简明教程

     本书不仅注重知识传授,而且重视对读者创新能力的培养。 本书讲述Java面向对象编程的思想和方法,揭示Java的技术实现内幕和编译上的不完善之处,这对培养读者勤于思考、勇于实践和敢十创新很有帮助。在编排上采用...

    基于Android的家教预约平台app,结合Android、java和sql的前端和后端应用开发

    随着时代的快速发展,知识更新越来越快,家长们对自己孩子的教育也越来越重视,不希望自己的孩子输在起跑线上,因此,越来越多的家长不断搜寻好的老师给孩子做课外辅导。然而,据调查发现,现有的辅导教育机构招聘的...

    StudentListApp.rar_管理 applet

    在当今信息技术高速发展的时代,教育领域的信息化管理也日益受到重视。本文将深入探讨一个名为"StudentListApp"的网络版学生成绩管理系统,它采用Java Applet技术进行开发,旨在提供一种高效、便捷的方式来管理学生...

    UML.rar_java酒店预订_site:www.pudn.com_酒店预订

    开发者可能利用Java Swing或JavaFX库来创建图形用户界面(GUI),这两个库提供了丰富的组件和工具,可以轻松构建出复杂且美观的界面。 动态不规则界面是指界面设计不遵循传统的矩形布局,而是采用更自由、更富创意...

    GUI美化

    GUI美化不仅仅是视觉上的提升,更是对用户体验的重视。Java SE提供了丰富的工具和框架,使开发者能够轻松实现这一目标。通过本文的介绍,相信读者已经掌握了Java界面美化的关键技术和实践方法,期待大家能在自己的...

    JavaEye新闻月刊 - 2010年02月 - 总第24期

    5. **Swing Worldclock - 世界时钟效果**:Swing是Java提供的图形用户界面库,这个示例展示了如何使用Swing创建一个世界时钟,展示了Swing的灵活性和可定制性。 6. **开源作业调度框架Quartz 1.7.1发布**:Quartz是...

    Java面试技巧大全

    面试往往重视候选人的基础知识掌握程度,因为这是评估程序员素质的重要标准。以下是一些Java面试中常见的知识点: 1. **final, finally, finalize的区别**: - `final`:用于修饰变量、方法和类,表示变量不可变、...

    Java.Programming.From.Problem.Analysis.to.Program.Design

    总结来说,Java编程语言因其在教育界的普及和作为计算机科学入门编程语言的地位而受到重视。本书《Java编程:从问题分析到程序设计》不仅涵盖了传统和现代编程风格,也为编程初学者提供了一个系统的编程学习框架。...

    java版bad apple

    总的来说,Java版Bad Apple项目展示了Java在图形编程方面的潜力,同时也对开发者提出了挑战,要求他们具备良好的编程技巧、图像处理知识以及对用户体验的重视。这个项目不仅是对经典作品的致敬,也是Java学习者提升...

    JAVA自学之路

    但是如果把时间花在spring的各种细节的研究上,花在研究中国企业应用不广泛地的spring mvc上,这个精力就太浪费了,而且学习的积极性会受到打击,谁愿意整天泡在细节的蜘蛛网中挣扎不出来呢?谁愿意天天经历风雨却...

    课程设计报告-ATM柜员机模拟程序.doc

    在本次面向对象程序设计的课程设计中,我们以ATM柜员机模拟程序为题,旨在深入理解和应用图形用户界面(GUI)设计方法,以及熟练掌握Java Swing组件的使用和事件处理程序的编写。以下是详细的设计报告内容: 1. **...

Global site tag (gtag.js) - Google Analytics