I have been using Netbeans' Java Swing GUI Builder (Matisse) for all of my projects for the last 3 1/2 years. I've read so many people's complaints about GUI Builders and the most seasoned programmers chide everyone who even hints at using one, but here's my experience:
- The un-editable code is never necessary to edit. Really, the GUI Builder provides a skeleton for your GUI. You drag, drop, resize, and constrain your components using the editor, but the content of the table, the list for the combo box, etc., all need to be handled on the backend. The GUI builder allows you to focus on that while it takes care of making things look pretty and stay in place.
- WYSIWYG is always more productive. Word Processors are the testimony to this. People will tell you: "you don't edit GUI code that much so if it saves you time, it's not that much time." But this statement is extremely relative. When you work in a software environment with a process model that necessitates constant updates due to business model changes, this statement is false. Also, you spend the majority of your time on the content of your English essay, do you not? So this argument would say that WYSIWYG Word processors don't save you that much time, and such a statement would fall on deaf ears because no one would want to hand-code their essay's look-and-feel.
- There's nothing a GUI Builder cannot do that handwritten code can, whereas I've spent hours trying to solve small challenges with handwritten GUI code that took me 1 minute in a GUI builder.
Netbeans' GUI builder, in particular, has gotten so much better over the years that a lot of the flak it has received (akin to a lot of the flak Java has received) has been really nullified. It's a great program and it's a great way to build feature-rich, beautiful interfaces in a time-effective way. I highly recommend a good GUI Builder, especially Netbeans'.
There, I said it.
No, I don't work for them.