I've used both SWT and Swing to develop client-side Java applications on and for the Mac - although nothing particularly complicated. Swing is complex as hell for anything other than trivial applications, and has a deserved reputation for bugs, performance problems, and lack of platform fidelity. SWT is much simpler, faster, and has the enormous advantage of actually using native UI widgets.

--Bill Hutten on the java-dev mailing list, Sunday, 5 Jun 2005 19:04:23

The biggest problem with Swing was that it can do so much that it’s kind of become like the 747 cockpit if you like APIs. There’s a lot of complexity there, and the hard part is figuring out how to use it. It’s in this weird situation where pretty much anything you can want to do in Swing, you can do easily. But what’s hard is to figure out the easy path through all of the different options, the different ways you can do things. Once you figure out the one true path to get what you want done, then it’s pretty easy. People often say “Why don’t you just make it easier by simplifying it?”, and say, “so you simplify it in this way, it would make my life better”. But then for the next guy it would be worse, because he wants to not go there, he wants to go on this particular path. So it’s been difficult to manage the complexity right.

--James Gosling
Read the rest in James Gosling Q & A: Builder AU: Program: At Work