Eclipse Window Builder VS Netbeans GUI Builder (Matisse)
Java is a great programming language but it has a big flaw - it's GUI framework sucks!
I am talking about building simple client-side applications.
If you don't want to mess with any web gui framework then you are bound to use swing.
You can always build swing writing the text and imagining how it will work but any smart programmer will search for a nice Swing GUI builder which will enable him/her to have a WYSIWYG sort of framework to work with.
There are several options of WYSIWYG frameworks to pick from, the most noticeable till the July (2011) was Netbeans' "Matisse" GUI builder.
There were others of course but none as free or as good as Matisse.
The biggest flaw of Matisse is that it doesn't reside on the best IDE out there - eclipse, but it can be found only on netbeans which isn't as good as Eclipse (Doesn't even have a "hover" feature to name one great flaw of netbeans) so if you want to build a GUI supported by good java logic you'll have to run back and fourth between netbeans to eclipse which can cause lots of problems.
The second major flaw of Matisse is that it just isn't good enough, you place the components on the grid, Matisse then creates an XML with the component's attributes, then generates the java code for the components on the grid. Seems cool, but then you decide you want to add a button somewhere in the form or resize a component - this procedure can cause all of the gui to get mixed up throwing the adjacent components to different places - fixing it can be a pain in the neck.
Even if you managed to place all of the components where they should be but manually changed some of the generated netbeans code - you are in a BIG problem, a problem you might not manage to get out of unless starting all over.
But you still want to build a nice GUI using java and you still want a good java coding platform with a good WYSIWYG environment, what are your options?
A project was opensourced several years ago called myMatisse or maybe it was Matisse4me?
The idea was to migrate the Matisse platform into eclipse.
MyEclipse adopted this GUI builder and implemented into their distribution (which practically means it is the best GUI builder for eclipse).
But it never worked so well and it had its bugs.
Then came eclipse's Windows Builder and I fell totally in love!
There is no question which is java's best GUI builder framework, well there actually is a question but the answer is crystal clear to me - it is Windows Builder for eclipse.
It was created by a company and was bought by Google which opensourced it for the good of all and are active contributors to the project.
Last July it was officially released with the eclipse release train as an official eclipse plugin authorized and maintained by them.
MyEclipse still maintain their old plugin but their official gui builder is Windows Builder now.
So what is so good about it?
1. It resides on Eclipse.
2. It works! you can add components / resize or anything you want without being afraid your whole form will get mixed up.
3. It is totally bi-directional, so you can tweak its generated code as much as you want and it will instantly adjust to the changes - understanding them.
You can add a new component - manually hand coding it and it will understand it all (and display it on the WYSIWYG screen).
4. It has no XML files or any other helper files, all of the code is java and it is quite small and optimized.
These are the most noticeable benefits one gets when using windowbuilder.
Maybe beauty is in the eyes of the beholder but you have to be blind not to love WindowBuilder.