Home Java Java-tips GUI Layouts Alternate Layout Managers

Ask Questions?

View Latest Questions



Alternate Layout Managers
Posted on: July 26, 2006 at 12:00 AM
The JGoodies offerings have some of the best layout tools.

Java Notes

Alternate Layout Managers

GridBagLayout is the the best layout that Java has to offer, but some independently developed layout managers are better, either because they are much easier to use, or because they do a better job (or both!).

Below are some popular, free, layout managers. They fall into two main categories: rectangular table-oriented layouts, and "Other".

Table-oriented Layouts

JGoodies Form layout may be the best. I've also found TableLayout and HIGLayout easy to use.

JGoodies Form layout
The JGoodies offerings have some of the best layout tools. Most of them are free, but they also offer some for-pay products. Here's how Karsten Lentzsch, the author, described it in a comp.lang.java.gui posting.

The free JGoodies Forms layout system has been designed to good design quickly. Besides a powerful and flexible layout manager, there are helper classes (non-visual) builders, a tutorial, layout tips&tricks, etc. guide you through visual design and its implementation in Java.

Many developers have reported that the Forms has turned their UI work into kind-of joy, where they were frustrated with the GBL before.

The pure Forms layout system targets primarily source coders; however, a design goal was the simple integration with visual builder tools that help you save time or improve the design. There are now some visual builders that are worth a look - open the Forms' README.html and see the "Visual Builders" section in the sidebar.

Hope this helps. Best regards,
Karsten Lentzsch

URL: www.jgoodies.com/freeware/forms/index.html
I've used TableLayout with satisfaction. It's easier than GridBagLayout, yet accomplishes much the same thing. From their site:

TableLayout is a layout manager that provides all the power of GridBagLayout, but is simple and easy to use. TableLayout simplifies the creation of graphical user interfaces by providing an intuitive and powerful way to specify where components are placed and how they are resized. TableLayout makes it easy to write professional user interfaces quickly and easily.

TableLayout is a free layout manager. You may use it in any commercial or non-commercial project. There are no royalties or license fees. You may subclass any class in the TableLayout package. You may unjar or rejar the classes and source files as you wish. The only restriction is that you may not distribute modified versions of the TableLayout source. This is to prevent confusion about what TableLayout does and to give credit to the author.

URL: www.clearthought.info/software/TableLayout/

Interview with TableLayout creator Daniel Barbalace

HIGLayout is similar to GridBagLayout in that there are rows and columns of variable heights and widths, and some may expand.
HIGLayout Tutorial
In the words of David Ekholm it is "both simple to use and highly flexible", and it appears to be exactly that. He uses it in his very popular JAlbum program. It's worth checking out.
URL: www.datadosen.se/riverlayout
URL: http://www.javaworld.com/javaworld/javatips/jw-javatip129.html

Other Layouts

MultiSplitPane: Splitting Without Nesting is an attractive approach on constructing split panes. This is not a layout, but a way to create split panes without nesting. It is a more appropriate solution to many of the problems that are commonly solved with nested layouts.
Hierarchical layout. Looks interesting. Actively worked on.
URL: chrriis.brainlex.com/projects/uihierarchy/index.html
A different approach is to use XML to represent your layout. SwiXML is one interesting package for doing this. I've used it a couple of times, and it was fairly convenient, but it didn't really solve the layout problem very well. It's interesting, provides an interesting alternative. Read more about it at today.java.net/pub/a/today/2006/02/21/building-guis-with-swixml.html. or check out java-source.net/open-source/xml-user-interface-toolkits for a more complete list.

There are other possibilities that I haven't really looked at closely.

Copyleft 2005 Fred Swartz MIT License