Free swing framework update

ajax , java Venice, Italy
  • 13 years ago

    The rise of Rich Internet Applications (RIAs) has lately become an important topic in the Java community. In addition to new technologies like AJAX and MacroMedia Flex, the combination of Swing and Java Web Start has also been proposed as a RIA technology.

    Much people criticize Swing because of the lack of data binding and POJO (plain old Java objects) support. Recently some efforts have been done to create a data binding layer that simplify data setting onto the graphical components (see JDNC project).
    Also a reference framework is needed to develop Swing applications, expecially for beginner Swing programmers. Recently some efforts have been done to design an Advanced Swing Framework (JSR 296). However this may represent a future step, not a current available solution.
    Moreover these attempts do not still provide a complete solution (a framework and advanced swing components with data binding capabilities) to quickly and easly develop rich-client applications; in addition, Swing components are just hard to use: creating a powerful table or a tree component usually requires a lot of code and time and skills.

    OpenSwing is an open-source Swing framework that provides an MVC architecture and automates communication between models, views, and controllers by means of Java Beans, directly connected to view components. It also provides a suite of advanced graphics components based on Swing components with data binding between components and data model.

    It is possibile to apply this framework to develop java stand-alone applications, without an underlying database, or to develop more classic two layered client-server applications (front-end + database) or to develop three tiered web applications (i.e. Swing front-end + HTTP + java servlet + database), or to develop distributed rich-client applications (Swing front-end + server side applications remotely accessed via RMI or another protocol + database).

    Openswing includes a set 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 label control, text field, multi-line text field, numeric field, currency field, calendar, grid, tree, tree combined with a grid, lookup, gantt diagram, buttons with image, combo-box, radio button, check-box, wizard panel, image panel, splash screen, dialog windows.
      Graphics controls are compliance with Java Beans specifications, so they can be used in the UI designer of an IDE, like JBuilder, JDeveloper, NetBeans, Eclipse, to the purpose of creating graphical windows by drawing them in the UI designer, likewise with other non java RAD environment.
      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 or any other proprietary framework.
      OpenSwing provides some utility classes that simplify Hibernate integration with OpenSwing, iBatis 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.
    • 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).

    Moreover, this framework provides some basic features that cover many issues that usually arise in enterprise application development, such as data extraction from 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 this 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.

    You can access it at:

Post a reply

No one has replied yet! Why not be the first?

Sign in or Join us (it's free).


Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“If Java had true garbage collection, most programs would delete themselves upon execution.” - Robert Sewell