… Then at least get a butt-kicking GUI design tool like WindowBuilder Pro. I’m not a Swing fan. I’m not smart enough to deal with its layout managers nor creating damn model backing objects for my Combo boxes. I’m pretty much SWT only these days (and probably have been for the last two years) and unlike pretty much everyone… I love using a GUI builder (I know, what a pansy… but for the smallish projects I work on I find it unbelievably productive).

I’ve heard good things about Matisse, but I’ve been using WindowBuilder for years and it’s been just fantastic (FD: I received a promo copy of WindowBuilder ages ago so it was extremely good value for me!). It works great in Eclipse, I can use it for both Swing and SWT development (why I got into it originally), and it’s got a kicking UI designer that is unbelievably smart about underlying code changes and refactors - with no “untouchable” sections or magic tokens (so your buddies on the CVS don’t need to have it installed). I’ve always found it really intuitive too… when you’ve got to shuffle components around the tree view of things is a Godsend….

Window Builder Tree View

So I had to throw together a “useful for about two weeks of testing” GUI this arvo, and, for something different, it seemed like Swing might be a nice candidate since I was after a quick and dirty GUI and wanted to keep the bundled jar count to exactly zero. Ahh… Coming home to Swing after SWT… Tell me again why:

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

is required? Is there ever a reason that you’d want to not default to this if it was available? And throwing a checked exception too… But I digress…

All of that said, my quick and dirty Swing GUI was a snack with WindowBuilder. I’ve never used the Swing part of it before, but it has all the same GUI building goodness that I’ve come to love from the SWT Designer portion.

The fidelity things still bites after having worked with SWT for so long… Why can’t I Ctrl-Z to undo a paste in a JTextArea? But the platform has come a long way, and it definitely fits the goods for a quick hackup of a GUI:

SAML Tester GUI on Windows

Which will run unaltered on multiple platforms…

SAML Tester GUI on MacOSX

As a quick hackup, the Swing story is pretty compelling. And the look and feels have come a long way with each new version. I’m still a raving SWT fan. There is something about the platform fidelity, native integrations and the practical style of the API that just makes me want to love it.

Big props to the guys at Instantiations… WindowBuilder is the gift that just keeps on giving…