
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:
It's funny, this article reminded me of why I got out of the IT business.
The truth is, no-one outside of a relatively small, mostly young male, cabal of geeky types gives a stuff for the 'look and feel' of applications. The vast majority of ordinary users hardly notice (in my experience) when an application looks different (iTunes on Win XP is a notable example). They want apps to be easy to install, work once installed, not break, be intuitive to use, not force them to think about too many options or alternative ways of doing things and generally just get out of their way so they can do their work/playing/communicating/whatever.