OpenSwing Components

Introduction to Openswing

OpenSwing is an open-source suite of advanced graphics components based on Swing toolkit: these components are more sophisticated of those provided with Swing and can be manipolated directly inside the UI designer of the IDE.
It is also a framework that provides data binding mechanism between components and data model, based on the MVC paradigm. Data model is based on Java Beans (POJOs) and it is supported in all OpenSwing components, such as grid control, tree control or generic controls container.

OpenSwing provides a complete solution (a framework and advanced swing components with data binding capabilities) to quickly and easily develop rich-client applications.

It is possibile to apply this framework to develop java Desktop Applications or Rich Internet Applications (three tiered applications based on Swing front-end + HTTP + java servlet + database) or Distributed Applications (three tiered applications based on Swing front-end + RMI + java session bean stateless + database).

OpenSwing includes a collection of classes that can be used:

  • to create the application front-end, through a collection of advanced graphics controls, comparable to those provided by traditional RAD development environments like Visual Basic or Delphi.
    Graphics controls include more than 30 widgets: label control, multi-line label control, text field, text formatted field, multi-line text field, numeric field, currency field, calendar, grid, nested grids, grid with nested generic components, properties grid, pivot table, tree, check-box tree, tree combined with a grid, lookup, multi code lookup, lookups with auto-completition, gantt diagram, buttons with image, combo-box, combo-box multi-column, spinners, file control, radio button, check-box, list, check-box list, list multi-column, wizard panel, image panel, splash screen, dialog windows, tip of the day frame, progress bar/panel/dialog, licence agreement panel, alert window, iconifable window, "outlook like" panes, link button.
    Grid usage is especially sophisticated: it allows columns or rows locking, data pagination, columns filtering and sorting, persistent storage of grid "state" (sorting/filtering conditions, columns position/width/visibility), permissions at column level (editability/visibility/mandatory state defined at column level), data import/export and the grid model is based on a list of POJOs as for a tree component and as for a panel of graphics controls whose data model is based on a POJO. POJO support is extended to the entire set of graphical components that compose the GUI.
    Graphics controls are compliance with Java Beans specifications, so they can be used in the UI designer of an IDE, such as JBuilder, JDeveloper, NetBeans, Eclipse in order to create windows by drawing components on them using UI designer, likewise with other non java RAD environment.
    Building grids is expecially easy: a grid can be graphically composed by using the UI designer of the adopted IDE and by dropping on it the grid's columns and setting their properties by using the property manager of the IDE.

    The framework allows to create applications based on SDI (Single Document Interface) paradigm or based on MDI frame (Multiple Document Interface) and internal frames, including pull-down menu, tree menu and many front-end customization levels.
  • to create business logic tier + data-access tier, through a set of utility classes that simplify development process; this utility layer may be omitted and replaced by other popular server-side frameworks/ORM tools, like Spring, Hibernate, iBatis, Apache Cayenne, JPA/TopLink Essentials or any other proprietary framework.
    OpenSwing provides some utility classes that simplify Hibernate integration with OpenSwing, iBatis integration with OpenSwing, Apache Cayenne integration with OpenSwing and comunication between OpenSwing and Spring Framework, so that you can develop UI layer using OpenSwing and develop server-side layer using Spring and/or Hibernate or iBatis.
    OpenSwing provides some utility classes that simplify JPA integration with OpenSwing, , so that you can develop UI layer using OpenSwing and develop server-side layer using Java Persistence API with J2SE or J2EE (for instance using TopLink Essentials ref. implementation or Hibernate Entity Manager).
  • to create a comunication tier placed between presentation-tier (application front-end) and business-logic tier. This tier may be easly extended, by developing an own comunication layer above the standard layer offered by OpenSwing, to meet specific needs (such as RMI comunication with EJB, SOAP or other comunication mechanisms with server-side applications).
    This layer supports Hessian serialization library too, so it is possible to combine a client side application running with a specific version of java with its server-side running with another version of java.

Moreover, this framework provides some basic features that cover many issues that usually arise in enterprise application development, such as data extraction from grids and data import to grids, document viewing on the most popular desktop applications (like reports on Excel, CSV, XML, HTML, PDF, RTF), activities logging, internationalization support (label translation, date format, decimal symbols, grouping, currency support, etc.), authorization management according to grants owned by connected user.
All these framework components are strongly decoupled each other, by means of an accurate objects design, based on interface adoption that facilitate the implementation of new behaviours for base framework components.

It can be used with java 1.4, 1.5 or 1.6.


Openswing links

OpenSwing has been awarded by JARS as TOP 1% RATED   
OpenSwing has been awarded by SAFE TO INSTALL Certificate

Registered in Shareup Networks

Registered in Free Download

See an article about OpenSwing published in Java Developer Journal.

See a sample application based on OpenSwing and JGoodies look 'n feel.

Flash tutorial to web site, that shows how to create an MDI application having editable grid and master/detail functionalities.

See JAllInOne beta preview (you must have JRE >= 1.4.2 installed on your machine); to authenticate into this application use the account: "guest" / "guest". This is an ERP application based on OpenSwing. See the screenshot below.


Use of Openswing in commercial products

OpenSwing is released with LGPL licence, i.e. you are free to use Openswing library into non-free programs and these can have another kind of licence (e.g. commercial license); in fact, LGPL licence distinguishes between a "work based on the library" and a "work that uses the library": the former contains code derived from the library, whereas the latter must be combined with the library in order to run. A "work based on the Library" inherits the same LGPL licence, but a "work that uses the library" not: if your application only uses Openswing then your application can have another licence.

Please report in this forum a brief description about applications based on OpenSwing you have realized!

Do you need to develop an application based on OpenSwing?

The same team of developers that realized OpenSwing may develop it for you, using their high skills and in little time!
If you are interested, contact OpenSwing project administrator or send an email to

What's new

2011-03-03 Available update of OpenSwing manual

2013-07-06 OpenSwing release 2.4.7 is available.
In this release:
Fixed problem in GridControl when using orderWithLoadData=true
Fixed problem in GridControl when using GridController.getFont in insert/edit mode.

The distribution includes also Jar file libraries, source files, javadoc, licence and readme.txt installation instructions.

Past news

See past news

Licence | Contacts | ©2007-2017 Mauro Carniel Logo

   a Free Rapid Application Development tool to create web and mobile applications