
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:
I would just like too aggree with all the posters that have said the Java "GTK" LAF stinks. The fonts are disgusting the widgets all look wrong and work wrong. Just fire up Eclipse or RSSOwl on a Linux desktop they appear and act really natively and the fonts are RIGHT and look great, you can see how much better SWT is.
I prefer any day a Java app that just gives you a metal LAF with no choice like Jchempaint or Jmol to an app that gives you the "GTK" LAF without any choice like Freemind excellent app though it may be.