Skip to main content

And then there were more than 50: More Swing Component Libraries

Posted by hansmuller on October 14, 2004 at 1:13 PM PDT

The javadesktop.org
href="http://www.javadesktop.org/rollups/components/index.html">
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
href="http://weblogs.java.net/blog/hansmuller/archive/2004/10/another_40_swin.html">
blog ("Another 40 Swing Component Libraries")

that have appeared here on javadesktop.org and on

JavaLobby.org,

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!
  • UICompiler
  • Einnovations EII Commons
  • Gandalf Wizard Framework
  • Zeus Components Library
  • JBalloonTooltip
  • Hypergraph
  • JForm
  • Foxtrot
  • Kiwi
  • Geosoft G
  • StarLink
  • Inxight Software
  • Thinkmap

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
space:

Inxight,


Thinkmap,

and

TheBrain.com.

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
stop myself.

Warning:
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.


General Purpose



JASE Software - ConfigureJ

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

JAPISoft provides everything from

EditX,
v
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

JXMLPad,

a Swing component/framework for editing XML/XHTML documents,

JDock,

a Swing framework for MDI applications that is compatible with standard layout
managers, and

JResourceBrowser

a generalization of JFileChooser.
Most of the software is vailable for free evaluation and the sites,

www.JAPISoft.com

and

www.SwingAll.com,

are packed with screenshots.



Infragistics - JSuite

JSuite is a broad suite of Swing and AWT components, including charts
(notably Gantt charts), tables and grids, calenders and schedules.



Jeppers

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
href="http://jeppers.sourceforge.net/applet_demo.html">
applet demo

that launches the spreadsheet in its own window.



ICESoft Technologies

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
    that supports JavaScript, applets, and SSL. It implements a
    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
    required.
  • 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.



Javaio - WebWindow, Component Suite, JModeler

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.



L2FProd - Common Components

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.



Eltima - Visual Java/Swing Components Library

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.



Extreme Component Inc.

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
layout managers.



JGraph - Swing Components

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

JAutoCombo

and

JTreeCombo

components on the JGraph site.



Sygem - Swing Components

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 GUI Library

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.



AgoBeans

A small (only 64K) library of Swing components, including a nice
selection of color choosers.



zBlueSoftware - Java Components

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

zBlueStudio.



MultiSoftGroup - Blazze GUI Framework

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.



FlexDock

An open source docking framework; now with alpha composited drag previewing!



jProductivity - Components!

Components! is a robust collection of sophisticated components for
JFC/Swing, including general purpose calendar and calculator components.



UI Compiler

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.
Try the
web started demo

to see the end product in action.



Einnovations EII Commons

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 Components Library

Zeus is an open source Java Swing component library. It provides
useful swing components for easier GUI development: JSplash and
JConsole.



Kiwi

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.


Database



Simprit Swing

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



AppLook - DBDataControl

The DBDataControl provides a fast and efficient way to retrieve and
edit data from any relational database.



SwingSet

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.



MVC Mediator

An app framework for Swing with support for data binding, validation,
and so on.



JForm

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

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

here.



Northwoods Software - JGo

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.



Dirk's J Toolkit (DJT) - Gantt Chart Class Library

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

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

Inxight's application and component SDK products are focused on
"information discovery" and visualization. Among them are

StarTree

for visualizing large collections of objects and

TableLens

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.



Thinkmap SDK

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.


Special Purpose



JSky - Java Components for Astronomy

JSky is being developed as part of the Gemini Observing Tool, which
astronomers will use to plan their observations at the

Gemini Telescope

in Chile. Don't miss this

press release

about a recent Gemini telescope
observation: "Like Nothing Seen Before - New Object Defies
Classification".



FreeHEP (High Energy Physics) Java Library

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.



INT - J/GeoToolkit

J/GeoToolkit delivers high performance graphics capabilities for Oil and Gas E&P applications.



ESRI - MapObjects Java Edition

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.



SERVA - TWaver

TWaver is a complete suite of Java graphic components for
telecommunication operations support system (OSSs).



LAB Asprise! - Java Image Acquisition UI Components

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.



WebCab JavaBeans

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.



Gandalf Wizard Framework

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

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
ballon-like layout.



GeoSoft G

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

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

SPLAT,

a spectral analysis tool.


Calendars



Java Calendar Component

A configurable date chooser panel.



OnlyJava - JCalendarCombo

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.



NachoCalendar

A set of data chooser components and panels (free!). You can give
them a try with the

web started demo.



LavanTech - Date and Time Selector Component

A configurable date and time chooser; panels and combo box style controls.


More



Pendulum

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.



PDF Box

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.



Crionics - jPDF-Creator

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
applications.



JetBee Java Print Library

Support for background printing and spooling of AWT and Swing components.



JChain SA

JChain SA is a toolkit for copy protection and license management of
Java applications.



Foxtrot

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.

Related Topics >>