
Java Swing comes with "pluggable look-and-feel technology", which essentially boils down to the fact that interfaces can be "skinned" (although this is simplifying a tad) and is therefore, extremely flexible. By default, Java ships with a cross-platform look-and-feel (LAF), which means your apps can look consistent across all platforms, or LAFs that mimic the look of a specific platform, say Windows, for example. However, one of the chief complaints of Java desktop applications is its "look". It basically stems from two issues:
This is an interesting project:
http://jrex.mozdev.org
it also has support for swt:
http://justthe.net/jrex/
What's really cool about this is that you can programmatically control the entire web browser from within java, and then you can pass events from within the browser back. So you could essentially create a very dynamic browser.