Swing Application Framework
   HOME

TheInfoList



OR:

The Swing Application Framework ( JSR 296) is a
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
specification for a simple
application framework In computer programming, an application framework consists of a software framework used by software developers to implement the standard structure of application software. Application frameworks became popular with the rise of graphical user inte ...
for Swing applications, with a
graphical user interface A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
(GUI) in computer
software Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications. The history of software is closely tied to the development of digital comput ...
. It defines infrastructure common to most desktop applications, making Swing applications easier to create. It has now been withdrawn.


Features

The JSR 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 A desktop traditionally refers to: * The surface of a desk (often to distinguish office appliances that fit on a desk, such as photocopiers and printers, from larger equipment covering its own area on the floor) Desktop may refer to various compu ...
applications Application may refer to: Mathematics and computing * Application software, computer software designed to help the user to perform specific tasks ** Application layer, an abstraction layer that specifies protocols and interface methods used in a ...
: * 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 of an
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
Reference Implementation In the software development process, a reference implementation (or, less frequently, sample implementation or model implementation) is a program that implements all requirements from a corresponding specification. The reference implementation ...
called "appframework" began 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 SE) is a computing platform for development and deployment of portable code for desktop and server environments. Java SE was formerly known as Java 2 Platform, Standard Edition (J2SE). The platform uses th ...
7 (Dolphin) version of
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
, and the project was scheduled to be included in milestone 5 of the
Java Development Kit The Java Development Kit (JDK) is a distribution of Java technology by Oracle Corporation. It implements the Java Language Specification (JLS) and the Java Virtual Machine Specification (JVMS) and provides the Standard Edition (SE) of the Java ...
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. It was later withdrawn at the Spec Lead's request in June 2011. The last public release of the appframework project was 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 Kenai in September 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. Last release BSAF 1.9.1 was 2012. BSAF is still available at
SourceForge SourceForge is a web service founded by Geoffrey B. Jeffery, Tim Perdue, and Drew Streib in November 1999. SourceForge provides a centralized software discovery platform, including an online platform for managing and hosting open-source soft ...
, which has a button that says "This project can now be found here," that takes you to the now defunct project Kenai. ;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 Kenai. Unlike BSAF, GUTS is making a break-away from the "problematic singleton" pattern. This project began in June 2009, and is currently not active (version 0.1 stuck 2010). ;Swing Application Framework Fork :The Swing Application Framework Fork, or SAFF, is a fork of appframework 1.03. It is currently hosted at
GitHub GitHub () is a Proprietary software, proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug trackin ...
. However, this project has been dormant since October 2009. ;TreasureMap :TreasureMap is a library providing standalone use of appframework 1.03's ResourceMap implementation. ;NetBeans Platform :The NetBeans Platform is a robust Swing application framework, with many more features, as well as much more documentation. Because of the JSR failure/hold, SAF has been removed from Netbeans as of version 7.1. The developers seem to have no desire to provide any alternative, and suggest that the Netbeans platform is the right mechanism for porting SAF projects to a supported platform. ;Eclipse RCP : Eclipse RCP is a big SWT (an alternative to Swing) application framework, for bigger projects, needs more time for understanding. ;jGAF - Java Generic Application Framework :jGAF is a simple and compact library to quickly build full-featured Java Swing Application. This free open-source framework provides APIs to handle application life cycle, menus, configuration, OS integration, application data persistence, application protection, wizards, preferences, etc.


See also

* swingLabs


External links


JSR website



appframework the open-source reference implementation for JSR 296

Source Forge BSAF Page


References

{{Reflist, 1 Java specification requests