What did you mean by this "I later concluded that MS was right - Swing *only* worked for native apps & then it was still poor in some areas."
What is a native app in this context? I was with Swing from the start, I developed apps using Swing 1.0 in JDK 1.1.6 and up (using com.sun.swing packages). From the start it was dog slow an buggy.
In theory Swing was a good idea, you would get the same set of widgets on every platform, working the same on all platforms. However, in practice, it didn't work, for 2 reasons:
1. Performance, performance, performance. The performance even today sucks
2. Native look and feel support, the Windows L&F has never quite emulated real Windows 100%. In fact, Sun has still not come out with a Windows XP L&F.
My preference would have been a fixed AWT with MVC (e.g. every widget would have a model like with Swing etc.), those widgets not found on any given platform would be emulated. SWT is too simplistic in that respect.