`
EdwardWorld
  • 浏览: 28367 次
  • 性别: 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
分享到:
评论
43 楼 night_stalker 2009-04-26  
xsc963 写道

1、开ClearType ,这个非常的重要。
2、为netBeans加个快捷方式,放入参数  --laf javax.swing.plaf.metal.MetalLookAndFeel --fontsize 12
    用Swing我觉得比较好看跟快速,如果你喜欢别的观感,当然也可以使用

metal 只是改了个花哨的观感,没有解决 output 窗口字体的问题……
42 楼 shiren1118 2009-04-26  
国内还真没见过纯swing的社区

swing哪都好,就是生不逢时,而已
41 楼 night_stalker 2009-04-26  
java.lang.Object 写道

swing 的一切都是可以画出来的,怎么会难看呢?它也是可以换lookandfeel的,我觉得很多人学SWING都是人云亦云,自己没有深入去了解他。这也是大多数程序员跟风的心态。没有自己去仔细研究过。

哪个 GUI库 不可以重画? 就算直接用 Win32 API,也能换 look and feel 啊。
40 楼 nethaoke 2009-04-26  
swing的整体架构很清晰   现在有很多出名的框架都能体现出swing的思想 netbeans那个Visual Library可以独立运行 不一定要Netbeans platform
39 楼 EdwardWorld 2009-04-26  
勇敢的心 写道
SWING败在架构,出现ECLIPSE那么好的集成开发平台,只能是既生瑜,何生亮了

我恰恰觉得Swing最大的有点是架构,架构清晰而且严密。
Eclipse我06年-07年用过,并没有觉得他是多么好的集成开发平台,Netbeans有Visual Library图形化库,有Netbeans platform 开发框架平台,而且这些都是由现在sun(现在的Oracle)这样的大公司来维护更新,解决方案比Eclipse好。

如果你用过MFC 开发,那么你会觉得Swing的架构不是一般的清晰。
现在QT的UI库,我感觉就是在模仿Swing,为什么QT不模仿SWT呢?
38 楼 勇敢的心 2009-04-26  
SWING败在架构,出现ECLIPSE那么好的集成开发平台,只能是既生瑜,何生亮了
37 楼 arienya 2009-04-26  
EdwardWorld 写道
fsfish 写道
个人感觉桌面应用不是JAVA的强项,我也做过AWT SWING SWT的项目,感觉确实不如VB.DELPHI等快速开发工具方便和便捷,效率上也没有优势,不过如果看JDK的那些JAVA2D JAVA3D的DEMO确实挺赏心悦目的

那是因为你用Eclipse

lz,你用什么开发swing?我用过的java图形化工具感觉也并不好用.
36 楼 dd2086 2009-04-26  
tcrct 写道
swing开发我有些时候也会用到,至于速度效率方面就不想多说了,但如果要发布这个用swing写的程序的话,为了确保程序能在没有装JDK的机子上运行,就要将JRE也打包进去后成EXE,这就会造成生成的EXE文件体积好大,不知道用SWING开发的各位是如何解决这个问题的呢。
另,我对楼主所说的开一个SWING的版块也很赞同。


我也很想知道,你们是如何做的,如何解决安装包大小的问题,有时候东西太大了一个是不适合传输,一个是用户也不希望用那么大一东西

希望能解决的给点好的方案
35 楼 nethaoke 2009-04-26  
swing 没见过慢 , 你不可能在一个线程里面进行业务处理还要现实界面更新吧, 处理好线程的同步就OK了.  内存占用比较大  其实java程序占用都比较大 ,自己手动清除一些资源就可以了。至于说swing丑 那我就没见过了 至少我觉得比swt好看多了 而且他的java 2d随便你怎么做 这个就要看你的水平了。关于开发效率 自己封装一下控件 做个数据绑定之类的 也不难。
34 楼 tcrct 2009-04-26  
swing开发我有些时候也会用到,至于速度效率方面就不想多说了,但如果要发布这个用swing写的程序的话,为了确保程序能在没有装JDK的机子上运行,就要将JRE也打包进去后成EXE,这就会造成生成的EXE文件体积好大,不知道用SWING开发的各位是如何解决这个问题的呢。
另,我对楼主所说的开一个SWING的版块也很赞同。
33 楼 java.lang.Object 2009-04-26  
akiraray 写道
Swing慢的问题不只是在windows特有的……
放在任何一个linux桌面版上那是更严重了……
swing的话……windows下肯能是稍微慢,不过个人感受swing的程序跑在笔记本上那是慢的不行……跑在开了特效的ubuntu上
对不起……根本运行不起来
可是头疼的是netbeans和sql-dev又都是swing写的……

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

我就让我的netbean6.5很流畅地运地的ubuntu上面,开了3D特效。我不知道为什么你的会跑不起来。
我也是笔记本。装的双系统。
32 楼 java.lang.Object 2009-04-26  
whaosoft 写道
cs 我会用 vb c# c++ flex 做
java的 swing~ 其实我就是感觉过于难看 而其没用很好的 可视化ide~~

swing 的一切都是可以画出来的,怎么会难看呢?它也是可以换lookandfeel的,我觉得很多人学SWING都是人云亦云,自己没有深入去了解他。这也是大多数程序员跟风的心态。没有自己去仔细研究过。
31 楼 cyberblue 2009-04-26  
嫌慢就用QT for Java,速度绝对满意。
30 楼 java.lang.Object 2009-04-26  
EdwardWorld 写道
night_stalker 写道
就是因为受不了难看缓慢的 Netbeans,才讨厌 Swing 的 ……

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

知音啊,终于遇到一个喜欢swing,喜欢netbeans的人了。我一直都坚持使用netbeans.
29 楼 greateWei 2009-04-26  
我也挺看好基于Swing的桌面应用开发的。

可能手头的项目基本上是桌面应用,有意无意都会比较看看各种解决方案。

目前公司的项目基本上采用Delphi开发的,为了弥补Delphi作为应用服务器开发的不足,也有几个项目采用了Delphi + JSON(JSON-RPC) + Java 方式来实现,即前台采用Delphi开发,后台使用Java开发,数据交换使用JSON-RPC(PHPRPC可能也是一个备选方案,论坛上上个月讨论过的),数据交换协议采用HTTP协议,从几个项目情况来看,性能基本上没有什么问题,而且开发速度也不错。

不过,从长远看,还是打算切换到java开发平台,主要的一个目的就是扩平台、多语言支持。从近两年的情况来看,java在桌面上有了很大的进步,而且现在的硬件性能也有了很大提升,内存占用也不是很大的问题,因此,如果是新项目,我觉得可以考虑使用基于netbean rcp + swing 平台来开发。

至于eclipse rcp + swt平台,之前也做过一个项目,后台采用了基于spring http invoker 远程调用,后台基本上问题不大,只要增加一个spring remote export即可;前台桌面当时使用了swt-designer来设计界面的,当时往往在设计界面时,一天下来eclipse要异常退出好几次,而且swt-designer生成的代码和netbeans gui生成代码质量差很多。

28 楼 maomiandyou 2009-04-26  
我也是swing的坚定支持者。

虽然没有用swing做过什么像样的项目

但是我还是一直在自己写些小东西

支持楼主


27 楼 vlinux 2009-04-26  
swing的所有组建都是画出来的,所以我们可以很方便的进行hack,我局限于仅仅知道Java的UI,所以这点不知道算不算他的优势。

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

想起JavaEye之前有个帖子是在说:我们讨论XX技术是否NX的时候,一定要统一下双方的需求范围,否则在这个领域Swing很有用,但是到了另外一个领域却一无是处。我觉得他说得是非常有道理的,所以就你所涉及到的短信发送平台而言,我个人认为用Swing是很不划算的哦
26 楼 liujunsong 2009-04-26  
这就是所谓技术上的第一步和第二步的区别.
swing如果是定位在windows平台上做UI方面的开发,
那么一个必然遇到的问题就是:这个新东西和原来用的东西比,有啥优点?
而不幸的是,在原本window平台上的UI开发,无论vb,vc,delphi还是后来的.net,
都已经把所见即所得当成了基本功能,而且功能已经相当完备.
swing做为一个新来者,试图挑战现有者的地盘,就必须比现有的东西强很多才行.
而遗憾的是,swing做不到.
正因为如此,在ui部分,swing一直起不来.上面有东西压着呢,怎么可能起来呢?
相对而言,java在服务器端,实现了一统江湖的格局,正是因为在此之前,根本没有在服务器端,尤其在各个不同服务厂家之间统一的开发模式存在,在那里,java是一个空白的填补者,而在ui领域,swing只能是一个追随者.
25 楼 zhajie 2009-04-26  
我是swing的坚定支持者。

最近在开发基于 swing +ejb3 的应用系统,并且具有自动更新系统的功能。 到时候会共享出来。

但是我比较郁闷,商业化后,怎样加密class文件?混淆不是个办法。
24 楼 xsc963 2009-04-26  

我也比较支持Swing用来开发,特别是企业内部应用程序,说到WinFrom肯定没有Swing开发高效!

说到netBeans难看,似乎有点不负责任,速度慢倒是事实,但是在我的机器上比起VS也慢不了多少,只不过第一次打开的时候要慢很多。

而且用netBeans用来开发GUI程序非常的快速,特别是用了JPA之后!界面布局也非常的优秀。


附一下netBeans界面美化的方法,适用于XP系统:
1、开ClearType ,这个非常的重要。
2、为netBeans加个快捷方式,放入参数  --laf javax.swing.plaf.metal.MetalLookAndFeel --fontsize 12
    用Swing我觉得比较好看跟快速,如果你喜欢别的观感,当然也可以使用
3、工具 -- 选项 -- 字体和颜色 -- 缺省字体选SansSerif 大小为 13
   关键字,继承 + 加精
   这个看上去非常不错了!至少是代码编辑界面。

netBeans使用小技巧两个:
1、弹出所有可用的类
   工具 — 选项 — 快捷键映射 — 其它 — 显示所有代码弹出式菜单 更改快捷键(我是Ctrl + Win)
   这样,在输入类、关键字、跟变量的时候,按一下快捷键,就弹出所有可用的类或变量了,选择某一个类的话,还可以自动import。

2、编辑文档的时候,按下 Alt + Shift + D可以让当前文档脱离主窗口,对照输入的时候非常的方便

相关推荐

    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