HOME

TheInfoList



OR:

The Swing Application Framework ( JSR 296) is a
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
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 int ...
for Swing applications, with a
graphical user interface The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
(GUI) in computer
software Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work. At the lowest programming level, executable code consists ...
. 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 A framework is a generic term commonly referring to an essential supporting structure which other things are built on top of. Framework may refer to: Computing * Application framework, used to implement the structure of an application for an op ...
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 c ...
: * 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 the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
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 o ...
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 Ja ...
7 (Dolphin) version of
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
, 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 that offers software consumers a centralized online location to control and manage open-source software projects and research business software. It provides source code repository hosting, bug tracking, mirrorin ...
, 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, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continuous ...
. 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 Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. It is the second-most-popular IDE for Java development, and, un ...
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 swingLabs was a Sun open-source project proposing extensions to the Java Swing GUI toolkit. Available components included: * Sorting, filtering, highlighting for tables, trees, and lists * Find/search * Auto-completion * Login/authentication ...


External links


JSR website



appframework the open-source reference implementation for JSR 296

Source Forge BSAF Page


References

{{Reflist, 1 Java specification requests