应该改进的Java Swing 2.0

开发 后端
本文介绍应该改进的Java Swing 2.0,Jonathan Giles要求Sun对Swing 进行合理的改进,Swing对于Sun非常重要,以及其他所有方面都拥有重要位置。

这是一个很长的话题,自从“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.

【编辑推荐】

  1. SwingWorker的实例化
  2. Swing控件可以提供听觉反馈
  3. Java swing组件的串行化方法
  4. Swing组件的新元素Spinner Model
  5. SwingWorker单线程规则
责任编辑:佚名 来源: 中国IT实验室
相关推荐

2009-07-17 13:16:45

微软操作系统WIndows 7Windows AIK

2010-03-16 10:00:57

Ubuntu10.04改进

2013-12-05 09:19:30

Windows SerPKI公钥

2009-10-28 11:14:21

Android 2.0

2021-12-27 14:43:16

elementary Linux发行版

2009-07-10 15:10:02

Java Swing经

2012-07-09 10:11:58

ibmdw

2012-07-04 15:10:34

ibmdw

2009-07-15 15:35:59

Swing程序Swing性能

2009-04-30 09:10:42

JavaSwing线程安全

2009-11-30 16:36:35

IBM

2019-01-30 12:10:49

iOS捷径苹果

2009-07-16 11:13:50

Java Swing

2012-01-17 13:46:55

JavaSwing

2009-07-10 14:20:01

AcceleratorJava Swing

2012-01-17 14:05:29

JavaSwing

2012-01-17 14:09:54

JavaSwing

2009-07-10 11:45:44

Java Swing

2012-01-17 13:41:34

JavaSwing

2022-01-05 22:41:47

PintaPinta 2.0开源
点赞
收藏

51CTO技术栈公众号