SwingForms Development Framework

Release Candidate of SwingForms available!

SwingForms is a new RAD tool from Nonne & Schneider, which will be released soon. It is based on an internal prototyping tool. The tool has already approved its useabilty in internal Java projects. Now you can download a Release Candidate for evaluation.

SwingForms-Installation Englisch  Dateigröße 76.29 KB Download

SwingForms 1.0RC2 Installation  Dateigröße 10.99 MB Download


SwingForms is a compact development tool which makes it easy to lay the foundations of a database-driven Java application. It is particularly suited for the following environment:

  • desktop application with a Swing user interface (Rich Client)
  • two-tier architecture with database access via JDBC
  • a program logic based on the "search - choose from result - edit" paradigm which is typical for most business applications

SwingForms consists of a runtime library und an interactive tool, called the Generator, which both are written in Java. A demo application which you can install optionally gives you an impression of what a SwingForms application looks like. For more precise details take a look at the user manual.

The SwingForms library contains powerful classes which make it easy to produce modules offering parameterized search where the user can choose from the result and edit the affiliated data using forms reflecting the hierarchical structure of the data.
SwingForms offers a model/view framework into which you plug your concrete implementations of building blocks like

  • the bean class holding the arguments for the search
  • the bean class used to represent the individual search results
  • all the bean classes which are required to represent or edit the data affiliated to a search result
  • "DataAdapter" classes which supply the read and write operations on the database necessary for the search and edit process
  • the "Logic" class which realizes the business logic
  • the user interface of the module which can be embedded into a frame, an internal frame or a tabbed pane.

Data Binding

The user interface and the data are clearly separated from each other. They are coupled using the "JGoodies Binding" library which is under the BSD license.

Data Validation

The validation of data changes is based on the "JGoodies Validation" library.
The application can handle all kinds of insert, update or delete operations on the data.


You can internationalize both the classes of the SwingForms runtime library and the generated code by suppling appropriate ResourceBundles.


SwingForms uses the java.util.logging package from the Java library to log errors and warnings.

Development Tool

The development process starts by extracting parts of the database scheme. Up to now SwingForms has been used with the database systems IBM DB2, IBM Informix, Microsoft SQL Server, Oracle, but also Apache Derby and MySQL.

Given the schema information you can use the tool to obtain proposals for bean classes corresponding to the individual database tables. Next you can modify these proposals or add more attributes. You can even model relational dependencies using list-valued attributes.


Based on the bean classes you can also generate fully functional code drafts for the other building blocks mentioned above. This code reflects both the metadata extracted from the database and the additional information supplied by the developer. The tool also provides the resources necessary to internationalize the program.


As for the user interface proposal ("PanelBuilder" class) you can choose from alternate methods to construct the GUI which both use the FormLayout from the "JGoodies Forms" library:

  • pure structured Java code
  • the (additional) filing of the central "Container" components (search area, hit table, edit area) in a design file (XML format) which can be manipulated using the (commercial) GUI Designer JFormDesigner. The design file can be used for the design process only or also be interpreted at execution time using a runtime library of JFormDesigner.

The settings choosen during the development process can be stored into a project file at any time. They can be retrieved and reused when the development process is continued later on.

Application Structure

You can design the main class and the window of the application freely.
SwingForms expects only that certain initialization steps (logging, preferences, resources, database session) are performed before a module can be presented as a JFrame, a JInternalFrame or as a child of a JTabbedPane.
The main class of the demo application shows one way how this can be done and how you define actions to start a module.