如何实际使用Swing应用程序框架?

10
我想学习如何有效地使用Swing应用程序框架。我找到的大部分示例都是博客文章,只是解释了扩展SingleFrameApplication并覆盖其启动方法的优点,但仅此而已。Sun的文章项目自己的介绍几乎两年前发布,自那以后显然有所发展。
是否有任何最近和全面的教程/ HOWTO 可在任何地方获取?当然有JavaDoc,但很难从中获得全局视图。任何指针都将不胜感激。
更新:我意识到项目网站上有一个邮件列表归档。虽然有些笨重(与StackOverflow相比),但似乎非常活跃。仍然遗憾的是没有真正的教程。信息散布在这里和那里。 更新2: 让我澄清一下 - 我不是在使用Swing(小部件工具包)本身时遇到问题,我说的是它的应用程序框架,它应该简化应用程序生命周期(启动,退出和它们之间发生的任何事情),操作管理等 - 也就是大多数Swing应用程序需要的东西。能够让这样的框架成为Java的标准部分很酷。唯一的问题是学习它的预期用法。 更新3: 对于感兴趣的人,刚刚在项目论坛上进行了有关JSR 296当前状态和未来的讨论。简而言之:目前的版本1.03被认为相当可用,但是 API 不稳定,将在Java 7的最终版本中改变。包名称也将更改,因此Java 7不会破坏当前在SAF上制作的应用程序。 更新4: Karsten Lentzsch在上述论坛中表示:“我怀疑它能否被包含在Java 7中;我会投反对票。”我不想质疑这位大师的诚意,当然明智的做法是不让任何有缺陷的东西滑入核心JDK,但坦白地说,这是一个奇怪的情况——他是JGoodies Swing Suite的作者,该软件部分上是JSR 296的商业竞争对手,而且他还坐在委员会上,决定是否将此JSR包含到标准Java中。JSR 295 Beans Binding也是同样的情况,我之前写过。

考虑到SAF的当前状态,我认为最好的解决方案是将当前实现包装成一个“自制”框架,这样可以容纳可能对现有API进行的更改。

5个回答

5
首先,我的个人建议是不要使用最新版本的SAF,它更像是“重构正在进行中”(而且已经有6个月没有更新了...)。
我更喜欢版本“1.03”,虽然不完美,但更加稳定和可用(我指的是在实际应用中)。
确实,关于SAF的资源很少。我记得我走过这条路:
- 阅读JavaOne 2007 seminar的演讲,这相当不错。 - 使用它并在需要时阅读javadoc。 - 有时看一些源代码来弥补javadoc的不足。
邮件列表目前不是那么活跃(但确实自今年年初以来交通量有点重新开始了,但我自2008年8月或9月以来没有看到任何Sun代表!)
去年,经过大约一年的 SAF 练习,我在 Jazoon'08 上做了一个演讲,你可以在我的博客上找到幻灯片 on my blog。这个演讲更多地是关于我在使用该框架时收集到的技巧和窍门。
有时候,我也不得不自己修补一些问题,因为很多问题都存在已久(有些对我来说不重要,有些则是阻碍)。
我记得在瑞典的一个会议上看到过(没有参加)另一个关于 SAF 实践的演讲,很有趣。
就我所知,就这么多内容了。

谢谢!我会看一下你的幻灯片。 - Joonas Pulakka

3

Netbeans 6.5提供了骨架应用程序,可以为您提供良好的起步作用。只需从IDE中创建一个新项目,然后选择Java > Java桌面应用程序。


谢谢,它似乎至少涵盖了ResourceMap和TaskMonitor类。 - Joonas Pulakka

0

我不知道有没有这样的事情。我决定避免使用swing应用程序框架,直到它成熟(或消亡)。我决定使用jgoodies库,等待Sun为swing开发人员做出一些贡献。


我已经在使用JGoodies Binding(免费),而且我会认真考虑购买JGoodies整个Swing Suite(昂贵)。它确实是非常高质量的东西。 - Joonas Pulakka
我希望它不要那么贵 :( - Ryan Thames
是的,但基础库是BSD许可证,而且非常好。 - Marko

0
你可以看一下SwingWiki,它有一系列的最佳实践和教程,尽管它已经两年没有更新了。

SwingWiki已经不存在。 - David Segonds

0

虽然 Swing 在过去两年中确实有一些演变,但基本原理并没有改变太多。我建议您从 Sun 自己的教程开始学习。

如果您想要书籍,那么可以从常见的出版商(如 McGraw Hill 和 O'Reilly)以及其他出版商处获取各种水平的书籍。一些书籍会用旧名字 “Java Foundation Classes” 或 JFC 来提到 Swing。


原始问题是关于“Swing应用程序框架”(又名JSR-296),而不是关于Swing本身。 - jfpoilpret

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接