What's New in JFormDesigner 3

JFormDesigner 3 introduces more than 60 new features and enhancements. This topic describes some of the significant or more interesting changes. Please have a look at the change log for a complete list of changes.

Eclipse plug-in

The Eclipse plug-in fully integrates JFormDesigner into Eclipse.

Eclipse plug-in

IntelliJ IDEA plug-in

The IntelliJ IDEA plug-in fully integrates JFormDesigner into IntelliJ IDEA.

IntelliJ IDEA plug-in

Convert IntelliJ IDEA forms

JFormDesigner can convert IntelliJ IDEA forms (.form files) to JFormDesigner forms. Stand-alone: Either select File > Import from the main menu or drag .form files to the JFormDesigner window. IDE plug-ins: Right-click on the form file and select Convert to JFormDesigner Form from the popup menu.

IntelliJ IDEA GridLayout support

The IntelliJ IDEA GridLayout manager is supported to make it easier to migrate forms, which were created with IntelliJ IDEA's GUI builder.

IntelliJ IDEA GridLayout

Project manager

The stand-alone edition of JFormDesigner now includes a simple project manager that allows you to use project specific source folders and classpaths. The IDE plug-ins use the IDE projects.

Improved Localization support

JFormDesigner's advanced localization support has been further improved:

  • Modifications in properties files are now done without loosing comments and without changing the order of keys.
  • It is now possible to use resource bundles in any folder (within source folders).
  • You can now change the resource bundle used in the form.
  • Use existing keys. In the Properties view click the small globe in a String property value to open the "Choose Key" dialog.
  • Missing resources are logged to Error Log view.
  • Delete Locale command added.
  • Reload properties files on external changes.
  • Localization of mnemonics.
  • Template for new properties files.

Resizing of columns/rows

You can now use the headers to change the (minimum) size of a column/row. Click near the right edge of a column/row and drag it.

Resize Column

Nest in Container

The "Nest in Container" command allows you to nest selected components in a new container (usually a JPanel). Right-click on a component in the Design or Structure view and select Nest in JPanel from the popup menu. The new container gets the same layout manager as the old container and is placed at the same location where the selected components were located. For grid-based layout managers, the new container gets columns and rows and the layout constraints of the selected components is preserved.

Nest in Container (Before)   Nest in Container (After)

Move and resize using keyboard in null layout

In null Layout manager you can now move selected components with Ctrl+ArrowKey and change size with Shift+ArrowKey. All alignment commands have now keyboard shortcuts.

Improved update of generated Java code

The Java code generator now better updates the source code:

  • Renames existing event handler methods when changing the event handler name.
  • Renames existing component getter methods and update the return statement when renaming a component.
  • Renames existing nested classes when changing the "Nested Class Name" property.
  • Updates the extends clause of a class when morphing a bean, which is connected to a (nested) class.

New Java code generation options

The Java code generator supports various new options:

  • Generation of explicit import statements.
  • Use 'this.' to access component member variables.
  • Use PanelBuilder for JGoodies FormLayout.
  • Use empty GridBagConstraints constructor (for Java <= 1.1).
  • Specification of i18n getBundle() and getString() code templates.
  • Parametrization of component class names (e.g. MyComponent<String>).
  • Global member variable prefix in preferences (e.g. "m_").

Java 5 support

The Java code generator can generate source code that uses Java 5 language features (e.g. auto-boxing, @Override, etc). You can also use Java 5 enums as property values and set annotations for component variables.

Extended Choose Bean dialog

Choose Bean (JARs)The Choose Bean dialog now has an additional tab named "JARs", which allows you to select classes that are marked as JavaBean in the JAR's manifest. The provider of the component JAR can mark some classes as JavaBean in the manifest file. Popular 3rd party component libraries like MiG Calendar or JIDE components use this to make it easier to find the few classes, which can be used in GUI builders, in libraries that contain hundreds of classes.

Client properties support

You can now use client properties. They can be defined in the Client Properties preferences and set in the Properties view.

Client Properties

TableModel editor enhanced

The enhanced TableModel editor now provides more features necessary for prototyping: predefined values for columns, use Date as column type, specification of preferred/minimum/maximum column widths, resizable flag.