JSR 296:
Well-written Swing applications tend to have the same core elements for startup and shutdown, and for managing resources, actions, and session state. New applications create all of these core elements from scratch. Java SE does not provide any support for structuring applications, and this often leaves new developers feeling a bit adrift, particularly when they're contemplating building an application whose scale goes well beyond the examples provided in the SE documentation.
This specification will (finally) fill that void by defining the basic structure of a Swing application. It will define a small set of extensible classes or "framework" that define infrastructure that's common to most desktop applications.
Developers plug in at a few customization points such as startup and shutdown.
Framework handles takes responsibility for saving and restoring windows and other parts of an application between startups and shutdowns.
Asynchronous actions that run outside of the Swing event dispatch thread.