This is one of biggest religious war in the
Java world. Basically:
AWT and Swing are JCP standards and officially part of the JDK for UI development. AWT is also available on all Java powered PDAs.
SWT is IBM's Java UI package. It is tightly integrated with the native OS and hence provides better performance and look-and-feel. But it is not as portable as AWT/Swing.
IBM produces a Java runtime on PDAs. They support SWT and on top of that, the standard AWT. I do not cover SWT since it is not universal and my book is not about the UI anyway.