Advanced GUI Builder for Swing

  • Free form layout
  • Beautiful code generation
  • Advanced event binding
  • Design and event preview
  • Roundtrip code editing
  • MVC separation

Freeform layout

Free Form Layout
GUIDE supports freeform layout with the JDK's GridBagLayout and JGoodies' FormLayout. GUIDE isolates the user from declaring rows and columns, instead inferring the correct layout from the position of the components.

For proof that no-one should ever hand-code a GridBagLayout, visit MadBean's Totally Gridbag.

To help with natural alignment, GUIDE offers snap guides allowing components to snap to other components or their container's edges.

Roundtrip code editing

Roundtrip Editing
GUIDE generates properly formatted, easy to read Java code. GUIDE doesn't parse the source - it compiles it and operates on real Java objects. This has several advantages:
  • Code refactoring just works.
  • There are no proprietry meta-data files locking you into GUIDE.
  • Enables the importing of existing GUIs.

MVC separation

GUIDE facilitates proper separation of concerns by encouraging the use of one of the Model-View-Controller patterns. Building your GUI this way makes it easy to write to proper unit-tests for your models and controllers. GUIs are notoriously difficult to test, but by putting all complex domain code in your controller you can make sure your testing coverage covers the most important code.

IDE agnostic

IDE Agnostic
GUIDE is a standalone application designed to work in conjunction with your IDE or text editor. This has several advantages:
  • No requirement for any particular IDE.
  • Can be used by teams in mixed-IDE environment.
  • Allows us to develop the best UI for the job.
We will however be aiming to allow GUIDE to use existing IDE project files to enable teams to start with a minimum of setup. We currently support Eclipse project files, but aim to support IntelliJ IDEA, Netbeans and Maven.

Automatic component generation

Automatic Component Generation
GUIDE supports automatic component generation from model or controller properties. Drag a boolean field property onto your design and GUIDE will generate code to create a JCheckBox, initialise it by consulting the controller and set up the appropriate listener to set the appropriate flag in the controller when the check-box is clicked. If the controller has PropertyChangeSupport a listener is also set up to pass state changes from the controller in the view, thereby binding the values of the view and controller together. Drag the whole bean onto the design, and GUIDE will create bound components for all bean properties. Featuring:
  • Automatics for most Java types.
  • Create automatics for entire Java beans
  • Creates two-way bindings for beans with PropertyChangeSupport

Advanced design preview

Advanced Preview
Design Preview allows you to:
  • Test your design with no side-effects.
  • Check how component events affect models and controllers.
  • Check how model events affect components.
  • Preview your design in other Look and Feels
  • Check how your design responds to pack()

Create re-usable components

Advanced Preview
GUIDE allows you to create to designs that be reused as separate components. Any class that extends java.awt.Component that has a no-arg constructor can simply be dragged out of the project browser and dropped onto the design.

You can even drag third party components from Jar files onto your design, such as components from SwingX

Create custom palettes

Custom Palettes
Drag custom (or just customized) components onto your own project-specific palette. It takes only a few minutes to create a custom palette in GUIDE. Your components render themselves so there's no need to design icons for them.

Easy menu editing

Menu Editing
GUIDE supports drag and drop menu editing:
  • Menus work just like everything else.
  • Easy moving of items between menus.
  • Easily handles deeply nested menus.
  • JMenuItems and JCheckBoxMenuItems can be automatically generated from actions and boolean properties