This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
From my (extremely limited) experience, it depends on what you need for your application. Swing seems very well suited for medium to large programs, or programs which will be used by a large number of people, but because of its foot print, seems a little excessive for small applications, or applets. I would say decide what you need and would expect from your program and use the appropriate libraries. Then again, I have about 6 months experience with Java GUI programming, so take this with a grain of salt.
To add to my previous reply...I have to say that a large majority of net users may not have the proper java version installed to run swing applets adequately. So, If you are designing an application, Swing. If you are designing a web applet, AWT or let the user know they must update their version.