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.
URL: www.jgoodies.com/freeware/forms/index.htmlThe 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 - TableLayout
- 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/ - HIGLayout
- HIGLayout is similar to GridBagLayout in that there are rows and columns
of variable heights and widths, and some may expand.
HIGLayout Tutorial - RiverLayout
- 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 - SGLayout
- URL: http://www.javaworld.com/javaworld/javatips/jw-javatip129.html
Other Layouts
- MultisplitPane
- 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.
- UIHierarchy
- Hierarchical layout. Looks interesting. Actively worked on.
URL: chrriis.brainlex.com/projects/uihierarchy/index.html - SwiXML
- 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.
- More
There are other possibilities that I haven't really looked at closely.
- JH Labs Layout Managers
- Links to lots of layout managers.
- mindprod.com/jgloss/layout.html has more layout references.
- Defining "rules" for layouts - Thoughts about a CSS-like approach.
















Current Comments
0 comments so far (post your own) View All Comments Latest 10 Comments: