JFormDesigner - Java/Swing GUI Designer

JFormDesigner™ is a professional GUI designer for Java™ Swing user interfaces. Its outstanding support for MigLayout, JGoodies FormLayout, GroupLayout (Free Design), TableLayout and GridBagLayout makes it easy to create professional looking forms.

Why use JFormDesigner?

JFormDesigner makes Swing GUI design a real pleasure. It decreases the time you spend on hand coding forms, giving you more time to focus on the real tasks.

You'll find that JFormDesigner quickly pays back its cost in improved GUI quality and increased developer productivity.

  • Stand-alone edition
    Stand-alone edition
  • Eclipse plug-in
    Eclipse plug-in
  • IntelliJ IDEA plug-in
    IntelliJ IDEA plug-in
  • NetBeans plug-in
    NetBeans plug-in
  • Move rows or columns
    Move rows or columns
  • Localization (I18n)
    Localization (I18n)
  • macOS support
    macOS support

Key Features

Easy and intuitive to use, powerful and productive

JFormDesigner provides an easy-to-use but powerful user interface. Even non-programmers can use it, which makes it 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.

MigLayout support

MigLayout is a superbly versatile and powerful open-source layout manager. It is grid-based, but also supports docking and grouping. Read More »

GroupLayout support

brings the "Free Design" paradigm to JFormDesigner (as in NetBeans GUI Builder; formerly Project Matisse). You can lay out your forms by simply placing components where you want them. This makes it easy to design professional-looking GUIs. Read More »

JGoodies FormLayout and Clearthought's TableLayout support

These well-known open-source layout managers allow you to design high quality forms. JFormDesigner provides excellent support for them. FormLayout » / TableLayout »

Advanced GridBagLayout support

allows the specification of horizontal and vertical gaps (as in TableLayout). This makes it very easy to design forms with consistent gaps using GridBagLayout. No longer wrestling with GridBagConstraints.insets. Read More »

Column and row headers

(for grid-based layout managers) show the structure of the layout and allow you to insert or delete columns/rows and change column/row properties. It's also possible to drag and drop columns/rows (incl. contained components and gaps). This allows you to swap columns or move rows in seconds. Read More »

Localization support

Localizing forms using properties files has never been easier. Specify a resource bundle name 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). Read More »

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.

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.

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.

Generation of nested classes

The Java code generator is able to generate and update nested classes. You can specify a class name for each component in your form. This allows you to organize your source code in an object-oriented way. Read More »

Learn More