Swing Application Framework
In addition to the Great Java Closure Debate, I have been attentively following along the progress being made by Hans Muller with JSR 296, the proposed Swing Application Framework. In a recent interview in Artima, Hans stated that, “If we’re successful, more high quality Swing applications will be built by developers with less experience and less frustration that ever before.”
In the current state of Java desktop development, if you want to develop an application you can do so from scratch or use a Rich Client Application framework such as NetBeans Platform, Eclipse RCP, or Spring RCP. Developing a desktop client from scratch or using one of the aforementioned frameworks requires a sharp learning curve because in addition to the business domain you need to attain a certain comfort level with Swing or some rich and broad RCP platform. The Swing Application Framework (SAF from now on but not to be confused with Single Asian Female) intends to be much narrower in focus and scope than the other platforms. The SAF also intends to lower the curve or barrier to entry in developing desktop applications in a very opinionated Rapid Application Development fashion.
In my mind, the main benefits of the SAF are it’s narrow focus, application scaffolding, consistent application life cycle, management of user preferences, application resources, and actions. Common application resources are images, fonts, and text messages. The current application life cycle events made available by the SAF are launch, startup, shutdown, and exit. For a simple application you can extend from SingleFrameApplication which hides most of the grunt work and provides a functional scaffold for you application, for example all SAF applications inherit the basic file and edit menus with the appropriate cut, copy, paste, delete, and quite actions, and status bar.
As of this writing there is a preview prototype implementation with sample application available for download from the Swing Application Framework project home.