I started with Java in 1997, before they existed and therefore, learned to build gui's in Java by hand. I find that I actually understand how the gui's work, while those who use teh GUI builder have no clue and cannot figure out why things don't work. I also find that the hand written code is 100x more readable and it encourages much better OO development.
Some examples, when building an application that will have a bunch of windows, I always create a Window superclass which takes care of the standard menu items, window close, etc. this gives all the windows the same look and feel. Likewise, many times the same panel is displayed in a number of places (e.g. customer information). In a hand written gui it can be re-used.
Another good example is layouts. Most gui builders either use absolute layout (which breaks as soon as you resize the window) or 1 big GridBagLayout. Again this is very unOO. If you make 1 change to the gui, it ripples throughout the whole window. I have found that using nested panels works much better, each panel's layout is encapsulated and protected from the rest, I can easily change how 1 panel looks without affecting the others a bit.
Gui builders use the standard inner class event listener pattern. While this is not a poblem for a small application, for large applications, this generates hundreds of inner class files. There are a number of other alternatives (GenericListener using proxies, or a listener using reflection) which require the creation of 1 or a few classes.
Last but not least, the generated code is very hard to read and is only really useful in the same IDE. Someone in my group used Forte for Java to generate a relatively simple screen, Forte generated an initComponents method 238 lines long (of course the whole window using 1 big GridBagLayout).
What does everyone else here think about the subject?