I personally am a fan of separating the GUI layout from the code (otherwise you end up with the problems you just mentioned). It also seems to be the trend: Microsoft has their XAML, you keep hearing about different view engines for MVC, etc.
Why not go with XML-based GUI design?
You could try out something like JFormDesigner which can handle both XML and code-generated layouts.