The Aloe framework comprises a number of utilities and components that I have developed over the past couple of years to try to ease the creation of new Swing applications. Though not as sophisticated as some other offerings, Aloe is useful in its simplicity, allowing basic programs to be started quickly and grown into robust applications.
There is plenty of room for improvement, and community-contributed additions and enhancements will be welcome. If you are interested in participating in the project, feel free to send me an e-mail introducing yourself, describing your background with the Java language and the areas of the project you would like to focus on.
Description
Aloe is a simple framework that serves as a starting point for
creating desktop applications in Swing. Some features include
support for splash screens, centralized action/application state
handling, offloaded (multi-threaded) tasks, and simple XML
parsing/writing. Also provided are extended Swing components
such as a sortable multi-column list (based on JTable), an MDI
system, and a container for docking multiple toolbars at
each edge.
Aloe Features by Package
Basic Aloe Packages
cb.aloe
The AloeApplication and supporting classes
cb.aloe.beans
Classes for creating bean objects with bound properties, and utilities for binding a bean's properties to Swing components.
cb.aloe.decor
LayoutManagers, Borders, and Icons
cb.aloe.event
Event listener lists to simplify support for registering and notifying listeners
cb.aloe.util
Utilities for tracking application state (to control enabling and disabling of Actions), running and monitoring Tasks off-loaded in a separate thread, loading icons and localized strings, and reading and writing ZIP files
cb.aloe.xml
A simplified wrapper for using Java's built-in XML support
Aloe Swing Extension Packages
cb.aloe.swing
Provides an arrangable desktop pane, on which windows may be cascaded or tiled, and a tabbed pane on which actions may be assigned to its tabs, displayable as buttons or a context menu
cb.aloe.swing.calendar
A customizable monthly calendar component
cb.aloe.swing.tools
Support for docking multiple toolbars at any edge of a container and for loading menu and toolbar definitions from XML resource files
cb.aloe.swing.mdi
A Multi-Document Interface optionally based on a tabbed pane or desktop pane
cb.aloe.swing.presentation
Support classes for the ComponentPresenter interface used by the MDI package
cb.aloe.swing.tablelist
Provides a multi-column sortable list based on JTable
Getting Started with Aloe Applications
Tutorials for using the Aloe framework will be posted as they become available. Meanwhile, a preliminary sample demo may be downloaded here. This demo supports Java 1.4 and above.