And then there were more than 50: More Swing Component Libraries
Swing Component Depot
column has a backlog of
more than 50 component suites. They'll all appear there eventually
however we thought you'd like to see the queue now, in all its
unadorned glory. So, here for your delectation is a brief summary of
all 50+ of them.
I appreciated the comments in response to the original version of this
blog ("Another 40 Swing Component Libraries")
that have appeared here on javadesktop.org and on
particularly the many suggestions about libraries that deserved to be
added to the list. Some of the feedback pointed out that it wasn't
entirely clear where I was drawing the line, not every library listed
here was a Swing Component suite. I have to admit that didn't religously
hew to that line. Looking at web sites devoted to Swing component
suites often lead to products that were relevant to Swing app
developers like spell checkers, PDF generators, and so on. A few of
these have made it into the list because I couldn't help but
inadvertantly vacuum them up in the process of collecting vital
statistics about mainline Swing component libraries. In this update I've added
another 14 libraries to the list, nearly all of the ones suggested by
people who've offered feedback:
- jProductivity - Components!
- Einnovations EII Commons
- Gandalf Wizard Framework
- Zeus Components Library
- Geosoft G
- Inxight Software
One suggestion that led to to a few extra entries that probably don't,
strictly speaking, belong was Hypergraph. Hypergraph is an impressive
open source project that has produced a J2SE component for visualizing
hyperbolic trees. There are several commercial projects in this
All of these products provide applet viewers for hyperbolic trees and
all of them have eye-popping demos on their respective web sites (go
ahead and look, you will not be disappointed). Both Inxight and
Thinkmap provide SDKs, however based on my cursory look at their sites,
the SDKs are for server side work or they're custom JDK1.1 viewers
based on AWT. In fact I didn't list TheBrain.com at all, despite the
inspiring name, since there didn't appear to be a Java SDK there at
all. Still it didn't seem right not mention them since they're
great examples of what desktop Java is capable of and they could
probably become part of a modern Swing application. Plus, the
Hypergraph site provided pointers to all of them and I just couldn't
in many cases I've lifted or crudely paraphrased vendor product
descriptions in the list below, rather than craft my own pithy
summary. It's not because I'm incapable of doing a good job of that,
it's because I'm lazy and life is short. It's also worth pointing out
that I'm not trying promote the relative merits of these packages,
just their existence.
There are more than 50 entries in the list below and that's more than the
most devoted fan of Swing component libraries is going to want to sift
through. I've attempted to break the entries into categories to ease
the burden a bit: General Purpose, Database, Graphs and Charts,
Special Purpose (for physics, astronomy, oil exploration, etc,
components look here first), Calendars, and "More". Naturally not
every library fits nicely into one of these categories, for example
nearly every general purpose library contains calendar or database
parts. The "More" category contains libraries that didn't fit into a
category. There are two (obvious) additional categories that are
missing because they're big enough to deserve their own roll-up:
layout managers and look and feels. Those categories will have to
wait until a future blog; I've got blisters on my fingers.
A Java Swing library for creating configurable menus, toolbars and
popups. Applications built with Configure can be reconfigured by
end-users through direct manipulation of the GUI itself.
JAPISoft provides everything from
an XML Editor and XSLT Debugger, to most of the components you'd need
to build a software engineering tool, like an IDE. Among the Swing
parts you'll find on the site are
a Swing component/framework for editing XML/XHTML documents,
a Swing framework for MDI applications that is compatible with standard layout
a generalization of JFileChooser.
Most of the software is vailable for free evaluation and the sites,
are packed with screenshots.
JSuite is a broad suite of Swing and AWT components, including charts
(notably Gantt charts), tables and grids, calenders and schedules.
Jeppers is a full featured web-based spreadsheet editor (free!)
written in Java. It also provides an LGPL grid component that can be
used in Swing applications. Check out this
that launches the spreadsheet in its own window.
ICESoft has been building pure Java web rendering software for quite a
long time. They now have three big products:
ICEbrowser SDK offers a compliant and configurable Web browser engine
proprietary plug-in interface to integrate third-party and custom
content handlers (such as JMF, XSL/XSLT, SVG, and PDF).
ICEreader SDK enables developers to render static HTML/XML content in
applications where secure or dynamic Web capabilities are not
ICEpdf SDK can be used as a standalone PDF document viewer
application, an embeddable PDF viewer component, or combined with
ICEbrowser SDK for a complete web-content rendering solution.
Loads of very high level parts here, beginning with the WebWindow
browser component. WebWindow is a small pure Java HTML viewer that's
intended to take up the slack from Swing's JEditorPane. JModeler is a
generic diagram editor for building modeling applications and the
Javaio Component Suite includes components like JOutlookBar (this sort
of thing is sometimes called an "accordion" control), JHelpView for
JavaHelp, and JSlidePanel for animating panels in and out of view.
A big collection of Swing components (free!)
including a font chooser, a directory chooser, and many other useful
parts and dialogs. Try them out with this
web started demo.
A large suite of Swing components, from borders and buttons to date
and color choosers. There's a nice looking general purpose image
viewer in the mix and some high octane combobox variations as well.
A general purprose collection of components. Some examples: JDataGrid
(spreadsheet style table) JCalendar (date picker), JFontChooser,
JLinkButton (button that can launch a URL), and a suite of custom
This component library from JGraph.com includes two Swing components:
JAutoCombo and JTreeComboBox. JAutoCombo is a combo box with
auto-completion, JTreeComboBox is a combo box where the user selects a
node from a tree rather than an item from a list (good for large
hierarchical sets of alternatives). Check out the web started demos for
components on the JGraph site.
SyGem Software's collection of Swing Components are designed to
provide Java Application programmers with a complete range of GUI
widgets to complement and enhance any existing Swing interface.
UltraSwing provides easy-to-use components that allow you to create
polished, modern GUI applications. With this library, you can easily
add advanced features, such as docking/floating, Outlook type side
menu, to your GUI projects.
A small (only 64K) library of Swing components, including a nice
selection of color choosers.
Presently zBlueSoftware provides two components:
ZCalendar - a data chooser for all locales, and
zFontChooser - font chooser dialog or toolbar element.
This company also makes a Java IDE called
Blazze provides you with a set of prepared and common used elements of
a user interface. These elements are joined together by intuitive
presentation logic. As a result we have got universal, generally used
GUI framework which can be used for most of business applications like
CRM, ERP and others. Free! Check out the
web started demo.
An open source docking framework; now with alpha composited drag previewing!
Components! is a robust collection of sophisticated components for
JFC/Swing, including general purpose calendar and calculator components.
An open source project with many things to offer, including a nice
suite of custom Swing components. UICompiler makes it possible to
take designs created with TrollTech's Qt Designer and compile them
into Swing applications with a custom look and feel.
web started demo
to see the end product in action.
EII Commons - an open source library of commonly useful components.
Among them are: a sortable JTable/model, a wizard framework, a
a set of masked edit controls, a print preview widget that works with
any Pageable, various tree, table, and list utilities, and more.
Zeus is an open source Java Swing component library. It provides
useful swing components for easier GUI development: JSplash and
The Kiwi Toolkit is a foundation class library containing many useful
classes that complement the Java Foundation Classes (JFC). The
toolkit includes many classes and components that were not provided
with the JFC, such as a TreeTable component, a command line parser, a
DateChooser dialog, and many others.
Simprit Swing is an addon package for Java Swing. Simprit Swing
includes useful data entry components to improve your users' data
input experience, and some new components such as tool bar pane,
calendar and date picker to impress your users
The DBDataControl provides a fast and efficient way to retrieve and
edit data from any relational database.
SwingSet is an open source toolkit for making Swing
database-aware. SwingSet utilizes SSTextDocument, an extension of the
standard PlainDocument class to link the JTextField or JTextArea to a
database column within a RowSet. In addition, custom classes are
provided to replace the standard JComboBox and JCheckBox.
An app framework for Swing with support for data binding, validation,
and so on.
JForm is a framework for building form-based user interfaces with
Swing. It provides a library of custom Swing components that supports
automatic databinding and validation.
Graphs and Charts
JUNG, the Java Universal Network/Graph Framework, is a software library
that provides a common and extendible language for the modeling,
analysis, and visualization of data that can be represented as a graph
or network. Check out the JUNG applet demos
JGo is a graphics library that makes it easy to build custom
interactive diagrams, network or workflow editors, connected graphs,
scheduling or organizational charts, smart maps, flowcharts, and
software design tools. It has built-in support for many shapes, text,
images, containers, connectors, orthogonal links, arrowheads,
scrolling, zooming, selection, drag-and-drop, resizing, in-place text
editing, tooltips, layers, and multi-page printing. It is powerful and
efficient, yet small and easy to learn and use. It includes built-in
support for Swing's Undo framework.
DJT is used for developing sophisticated Gantt chart solutions for a
big variety of applications that range from operation-based scheduling
applications to enterprise resource planning applications (ERP).
HyperGraph is an open source project which provides java code to work
with hyperbolic geometry and especially with hyperbolic trees. It
provides a very extensible api to visualize hyperbolic geometry, to
handle graphs and to layout hyperbolic trees.
Inxight's application and component SDK products are focused on
"information discovery" and visualization. Among them are
for visualizing large collections of objects and
for visualizing large tables. The SDKs are for the 1.1 JRE however
they're extremely capable. Check out the demos and see for yourself.
The Thinkmap SDK enables organizations to incorporate data-driven
visualization technology into their enterprise Web
applications. Thinkmap applications allow users to make sense of
complex information in ways that traditional interfaces are incapable
of. Thinkmap's display is a JDK1.1 applet, see
The Visual Thesaurus
for a great example.
JSky is being developed as part of the Gemini Observing Tool, which
astronomers will use to plan their observations at the
in Chile. Don't miss this
about a recent Gemini telescope
observation: "Like Nothing Seen Before - New Object Defies
The goal of the open source FreeHEP library is to encourage the
sharing and reuse of Java code in High Energy Physics. Although some
of the code is fairly specific to HEP, other code is more generic and
could be used by anyone. To maximize reuse we strive to keep the
dependencies between various packages in the FreeHEP library to a
minimum, so you can use which ever parts interest you without being
forced to use the entire library.
J/GeoToolkit delivers high performance graphics capabilities for Oil and Gas E&P applications.
A rich collection of client and server components for Java
developers. MapObjects-Java Edition can be used to build custom
applications that incorporate GIS and mapping capabilities or to
extend the capabilities of existing applications.
TWaver is a complete suite of Java graphic components for
telecommunication operations support system (OSSs).
Presently there are two components in this free library:
JImageDialog - an image acquisition UI component that allows the
user to load images and to perform basic image editing tasks.
JFileChooser - An extended JFileChooser that supports image
preview and image information extraction.
LAB Asprise! also makes the JTwain (for Win32) and JSANE
(Mac/Linux/Solaris/etc) J2SE libraries for dealing
with image acquistion from scanners and digital cameras.
Financial and mathematical J2SE
Components. Use our JavaBeans compliant Java Class Libraries within
any Java solution: JDBC enabled, detailed PDF technical documentation,
JavaDocs, bundled GUI JavaBeans and client examples.
The open source Gandalf wizard framework consists of a set of classes
and interfaces that give developers an infrastructure to build
wizards. Two types of wizards are currently supported: web-based
wizards and Swing-based.
JBalloonToolTip is the first true java implementation of balloon-like
tooltips. It allows you to use the whole power of old-fashioned java
tooltips (font, color, size, html formating, etc.) and modern
G is a generic graphics library built on top of Java 2D in order to
make scene graph oriented 2D graphics available to client applications
in a high level, easy to use way.
Starlink is a set of Java data reduction and analysis tools
and Java data access classes. The new Java tools and classes are
needed to produce applications in the Virtual Observatory (VO) era,
and to complement the AstroGrid and other VO capabilities. Among the
many examples of this software in action is
a spectral analysis tool.
A configurable date chooser panel.
A customizable combo box style date chooser. This site offers some
other generally useful components: JCalendarCombo, JCascadedPane,
JDirectoryDialog, and a file splitting utility with its own GUI.
A set of data chooser components and panels (free!). You can give
them a try with the
web started demo.
A configurable date and time chooser; panels and combo box style controls.
Pendulum is a Swing MVC and application framework built upon
href="http://www.opensymphony.com">OpenSymphony's XWork and
href="http://www.picocontainer.org">PicoContainer. It's primary
purpose is to simplify and separate Swing.
PDFBox is a Java PDF Library. This project will allow access to all of
the components in a PDF document. More PDF manipulation features will
be added as the project matures. This ships with a utility to take a
PDF document and output a text file.
JPDF-Creator is a fast, reliable, Java2D based component designed to
dynamically generate new PDF documents. Using jPDF Creator, businesses
can easily add PDF generation functionality to their java client
Support for background printing and spooling of AWT and Swing components.
JChain SA is a toolkit for copy protection and license management of
Foxtrot is an easy and powerful API to use threads with the JavaTM
Foundation Classes (JFC/Swing). The Foxtrot API are based on a new
concept, the Synchronous Model, that allow you to easily integrate in
your Swing code time-consuming operations without incurring in
"GUI-freeze" problem, typical of Swing applications.