Easy and intuitive to use, powerful and productive

JFormDesigner provides an easy-to-use but powerful user interface. The complexity of Java layout managers is hidden behind an intuitive WYSIWYG designer, easy to understand dialogs and powerful tools like column and row headers. This helps you to design high quality GUIs without deep knowledge of layout managers. Even non-programmers can use it, which makes JFormDesigner also ideal for prototyping.

IDE plug-ins and stand-alone application

JFormDesigner is available as IDE plug-ins for Eclipse, IntelliJ IDEA and NetBeans and as stand-alone application. This gives you the flexibility to use several IDEs in your team and the possibility to switch to another IDE. Use JFormDesigner in your favorite IDE.

The stand-alone application makes it ideal for prototyping and non-programmers because no heavyweight IDE is necessary to design GUIs.

WYSIWYG designer

Design view

The state-of-the-art Design view is the central part of JFormDesigner. It lets you drag and drop components, resize components, etc. Design view features »

Standard and Open Source layout managers

JFormDesigner supports all standard layout managers (GroupLayout, GridBagLayout, BorderLayout, etc.) and the popular and powerful open-source layout managers MigLayout, JGoodies FormLayout and Clearthought's TableLayout. This gives you the choice to use your favorite layout manager.

Menu designerThe menu designer makes it easy to create and modify menu bars and popup menus. It supports in-place-editing menu texts and drag-and-drop menu items. The component palette category "Menus" contains all menu components.

View a demo video here.

Localization support

Localizing forms using properties files has never been easier. Specify a resource bundle and a prefix for keys when creating a new form and then forget about it. JFormDesigner automatically puts all strings into the specified resource bundle (auto-externalizing). It also updates resource keys when renaming components, copies resource strings when copying components and removes resource strings when deleting components. Modifications in properties files are done without loosing comments and without changing the order of keys.

Localized form

You can also externalize and internalize strings, edit resource bundle strings, create locales, delete locales, switch locale used in Design view, in-place-edit text of current locale.

View a demo video here.

BeanInfo Annotations

The @BeanInfo and @PropertyDesc annotations make it very easy to specify BeanInfo information directly in the custom component. It is no longer necessary to implement extra BeanInfo classes. This drastically reduces time and code needed to create BeanInfo information.

Beans Binding (JSR 295) support

Using Beans Binding (JSR 295) helps you to keep UI state and model in sync. It drastically reduces the amount of listener code that is usually necessary.

Binding Source and Target

Support for events

JFormDesigner supports adding and removing event handlers and generates empty handler methods. It shows events in the Events category in the Properties view.

Add Event Handler menu

Based on JavaBeans standard

JFormDesigner is based on the JavaBeans standard. It supports and uses BeanInfos, BeanDescriptors, PropertyDescriptors, PropertyEditors (incl. custom and paintable editors), Introspector, etc.

Standard and custom Swing JavaBeans

You can use all components that follow the JavaBeans standard. This includes standard Swing components (JButton, JLabel, etc.) and custom components (3rd party or own beans).

Convert NetBeans and IntelliJ IDEA forms

JFormDesigner can convert NetBeans and IntelliJ IDEA forms 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.

Java code generator or runtime library

Either let JFormDesigner generate Java source code for your forms (the default) or use the open-source (BSD license) runtime library to load JFormDesigner .jfd files at runtime. Your choice.