应该改进的Java Swing 2.0 - Go语言中文社区

应该改进的Java Swing 2.0


这是一个很长的话题,自从“Sun:放弃Swing,主推JavaFX”,“Sun冻结Swing”的传言出来,整个Swing社区对Sun放弃Swing的可能表示了强烈的反对,由于作为一个成熟Java UI技术,Swing拥有相当数量的开发者,在关于Swing的争论中,要求Sun继续支持Swing的声音不断,一些开发者也澄清了大众对Swing的错觉,详见“关于Swing的六个谎言”。

在09年1月26日,Jonathan Giles 发表了他的博客:“Java Swing 2.0”,要求Sun对Swing 进行合理的改进。

Jonathan Giles 写道

我相信不基于JavaFX的 Swing 2.0的改进非常必要,基于Java框架,专注于桌面开发。我和很多开发者交换了意见,我们认为Swing 2.0 应该有以下改进:

Generics-based 基于范型: 我们不再需要将我们的对象放入不同的Swing 数据模型和组件中,只是为了接受返回对象。它应该能够通过指定数据类型创建swing 模型和组件。现在已经有了一个Swing-generics project 项目,虽然发展的有点慢,但是Swing2.0 应该包含这个项目,不需要重复工作。

Support for enumerations 支持枚举:这个需要是非常明显的,很多public static final int 数据 应该由枚举替换。这可以让API干净很多。

改进对collection frameworks的支持:这就是说我们不需要一直使用Vector lists,除非绝对需要同步。

对事件分发线程 event dispatch thread (EDT) 规则的严格强制:Swing一直速度很慢,这并不是事实,但是让人们这样感觉,这个感觉存在,因为开发者不理解如何控制处理 EDT .现存代码缺乏关于EDT 规则相关的强制,于是不能在EDT上运行的任务执行时间很长。所以,缺省的,Swing 2.0 必须进行EDT 验证,抛出所有异常。这会让开发者不爽,但是结果会让程序运行更快,让用户满意。这很值得。

改进bean绑定和验证 :我不会说到我们需要 properties 那么远,是因为还没有足够的信息给出确认的意见,我知道 JGoodies beans binding and validation 非常有用,让创建数据驱动用户界面容易并且迅速。Java Swing 2.0也应该吸取这些优点。

这篇博客得到了大量的回复和转载,在Swing社区引起了强烈反馈。Sun 也随后在官方博客“Swing and JDK 7”上做了回应:

sun 写道

Swing对于Sun非常重要,我们拥有大量的开发者在Swing 上开发,Swing在Sun 的未来开发蓝图中,在富客户端应用RIA方面,以及其他所有方面都拥有重要位置。

JavaFX也使用了很多Swing 的组件和桌面工具,Sun 很欣喜的看到基于Swing 出现了很多优秀的项目,比如: Griffon, Thinlet, Pivot 和 LWUIT等等。

所以,我们提升了 Swing 的重要性,甚至比JavaFX的下一个版本,甚至比 Java SE 6更重要,将花大力气弥补 Swing 作为UI工具的一些不足,比如让Swing开发更加简单,比如更好的运行时runtime 部署和性能优化。这些方面的进展让Swing开发者获益,并且也让其他依赖Swing的技术也获得优势。

对于Sun来说,在JDK 6 向 JDK 7 转移的期间,首先最重要的是 让运行时 runtime更加轻量化,更快下载,更快启动,对浏览器兼容更好,提升runtime性能。在Java SE 6u10中,已经得到体现。第二个就是Swing 了,让臃肿的Swing减少模板代码和概念上的复杂性,开发典型的Swing应用将使用JDK 7中的 Swing Application Framework.

Sun 将通过OpenJDK 让Sun以外的开发者更加容易为Swing贡献代码,我们已经和 XRender pipline team 团队合作为Java在Unix平台上提供更好的图形加速性能。 在JDK 7中,我们将加入组件类似JXLayer,DatePicker, 和 CSS styling等等。

我们也热切希望能够在JavaFX中使用Swing的功能,尤其对听到什么类型Swing应用能够需要嵌入JavaFX组件有兴趣。

综上,就是Sun保证对Swing继续开发,并且在JDK 7中加入Swing Application Framework.

现在Sun也遵守了诺言,Swing Application Framework (SAF) 开始向社区征询意见。

Alexander Potochkin 发表了博客“Swing Application Framework is back again”。他提出了SAF面临的问题,比如在同一个JVM中运行两个SingleFrameApplication 冲突的问题;在Mac操作系统上,Swing很难提供原生的用户界面等。希望SAF能够成为一个理想的框架,解决Swing遇到的问题,过渡到Java Swing 2.0.

版权声明:本文来源51CTO,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:http://developer.51cto.com/art/200907/135481.htm
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-05-16 09:47:36
  • 阅读 ( 689 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢