Computer Science Canada

An Introduction to SWT

Author:  rizzix [ Sat Jan 21, 2006 4:03 pm ]
Post subject:  An Introduction to SWT

Couple of notes on this presentation. Firstly, it's 1~2 year old. So, quite a bit of info provided here is now inaccurate, specifically the SWT vs. SWING comparison. Ingnore most of his comments about it, but not everything. You should be able to distinguish whats accurate versus what isin't, specially if you are up-to-date with the Mustang development. Wink

Couple of things are right though, for example: SWT is a lot more fun to use than Swing. And it is safer, in that inexperienced developers will tend to make less mistakes on their first try. But SWING is very powerful, robust and highly customizable. Either way, I'd suggest you learn both the frameworks. They both have their advantages.

For example: SWT is a lot faster and responsive (on Mac OS X anyway), than Swing. (Although I found it is just as fast as SWING on linux and windows. So if you plan on creating a application that has a large base of OS X users using it, then I suggest you create it in SWT and not Swing.) On the other hand, SWT makes a pathetic attempt to adhere to the native platform's user interface guidelines (especially the AHIG). Thus SWT is a poor choice if you want your application consistant with native apps, on platforms other than Windows. Swing on the other hand (along with the QuaQua PLAF for OSX) comes extremly close to the look & feel of a native app, despite what the presentation says. (As I said most of this is inaccurate, just consider the bias here. SWT and Swing developers fought flamewars over which toolkit is the better one. What a waste of useful time).

In my opinion, SWING is complex, SWT is simpler -- despite first appearences, where SWING appears to be simpler. So if you are one of those individuals who are still struggling with Swing, SWT is your best choice.

An excellent set of tutorials if you are interested:

Try out the examples, and experiment with them. It's the best way to learn.