If you’ve never developed on a Mac (or NeXT), check this out: Cocoa: Developing Cocoa Objective-C Applications: A Tutorial. See how you just draw a line from the GUI component to the object and select the “outlet” or the “action” that’s appropriate? Why can’t Swing be like that?
And why did the Mono team work on cloning .NET when they could have worked on sprucing up OpenStep and cloned IB?
The world may never know.
(By the way, there is Wotonomy for Swing which is based on the same concepts. The JDNC package also does data binding in a less heinous way than out-of-the-box Swing.)