Swing Application Framework
Encyclopedia
The Swing Application Framework (JSR
296) is a Java specification for providing a simple application framework
for Swing
applications. It defines infrastructure common to most desktop applications, making Swing applications easier to create.
296 specification defines the basic structure of a Swing application. It defines a framework
as a small set of extensible classes that define infrastructure common to most desktop
applications
:
Reference Implementation called appframework was begun in 2006. It was originally expected that this implementation would be the means for integrating JSR 296 into the upcoming Java SE
7 (Dolphin) version of the Java programming language
, and the project was scheduled to be included in milestone 5 of the JDK7 development. However, in August 2009, it was announced that the project would not be included due to an inability to reconcile design flaws and achieve consensus among the JSR 296 team before the milestone 5 deadline.
The original Swing Application Framework implementation has been put on hold indefinitely. The last public release of the appframework project is version 1.03.
Better Swing Application Framework
Guice Utilities & Tools Set
Swing Application Framework Fork
TreasureMap
NetBeans Platform
Java Community Process
The Java Community Process or JCP, established in 1998, is a formalized process that allows interested parties to get involved in the definition of future versions and features of the Java platform....
296) is a Java specification for providing a simple application framework
Application framework
In computer programming, an application framework consists of a software framework used by software developers to implement the standard structure of an application for a specific development environment ....
for Swing
Swing (Java)
Swing is the primary Java GUI widget toolkit. It is part of Oracle's Java Foundation Classes — an API for providing a graphical user interface for Java programs....
applications. It defines infrastructure common to most desktop applications, making Swing applications easier to create.
Features
The JSRJava Community Process
The Java Community Process or JCP, established in 1998, is a formalized process that allows interested parties to get involved in the definition of future versions and features of the Java platform....
296 specification defines the basic structure of a Swing application. It defines a framework
Software framework
In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by user code, thus providing application specific software...
as a small set of extensible classes that define infrastructure common to most desktop
Desktop environment
In graphical computing, a desktop environment commonly refers to a style of graphical user interface derived from the desktop metaphor that is seen on most modern personal computers. These GUIs help the user in easily accessing, configuring, and modifying many important and frequently accessed...
applications
Application software
Application software, also known as an application or an "app", is computer software designed to help the user to perform specific tasks. Examples include enterprise software, accounting software, office suites, graphics software and media players. Many application programs deal principally with...
:
- Management of application life-cycle, startup and shutdown,
- Support for loading localized resources,
- Persistent session state,
- Support for loosely coupling Actions to their presentation.
Status and Roadmap
Development on an open sourceOpen source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
Reference Implementation called appframework was begun in 2006. It was originally expected that this implementation would be the means for integrating JSR 296 into the upcoming Java SE
Java Platform, Standard Edition
Java Platform, Standard Edition or Java SE is a widely used platform for programming in the Java language. It is the Java Platform used to deploy portable applications for general use...
7 (Dolphin) version of the Java programming language
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
, and the project was scheduled to be included in milestone 5 of the JDK7 development. However, in August 2009, it was announced that the project would not be included due to an inability to reconcile design flaws and achieve consensus among the JSR 296 team before the milestone 5 deadline.
The original Swing Application Framework implementation has been put on hold indefinitely. The last public release of the appframework project is version 1.03.
Forks and Alternatives
Several forks of the original implementation have been started by open source communities, and several other application framework libraries have been created to achieve goals similar to those of JSR 296.Better Swing Application Framework
- The Better Swing Application Framework project, or BSAF, is a fork of version 1.03 of the original appframework project. BSAF was created at Project KenaiProject KenaiProject Kenai is a collaborative hosting site for free and open source projects, launched by Sun Microsystems and now owned by Oracle. The service will be discontinued move the existing Kenai.com projects over to the Java.net domain for public use as part of Oracle's restructuring of...
in September of 2009 and is currently the most active of the forks. Its goals are to eliminate bugs and execute small design fixes on the original appframework implementation while maintaining compatibility with version 1.03.
Guice Utilities & Tools Set
- The Guice Utilities & Tools Set, or GUTS, is an implementation of JSR 296 that combines the appframework with the Google Guice Dependency Injection library. Like BSAF, it is also hosted at Project KenaiProject KenaiProject Kenai is a collaborative hosting site for free and open source projects, launched by Sun Microsystems and now owned by Oracle. The service will be discontinued move the existing Kenai.com projects over to the Java.net domain for public use as part of Oracle's restructuring of...
. Unlike BSAF, GUTS is making a break away from the "problematic singleton" pattern. This project began in June of 2009, and is currently active.
Swing Application Framework Fork
- The Swing Application Framework Fork, or SAFF, is a fork of appframework 1.03. It is currently hosted at GitHubGithubGitHub is a web-based hosting service for software development projects that use the Git revision control system. GitHub offers both commercial plans and free accounts for open source projects...
. This project has been dormant since October of 2009.
TreasureMap
- TreasureMap is a library providing standalone use of appframework 1.03's ResourceMap implementation.
NetBeans Platform
- NetBeans Platform robust Swing application framework, with many more features as well as much more documentation.