
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'm no zealot, but when it comes to the GUI I am all for consistency. For instance, the official Apple guidelines state that the metal look should be used for apps that represent a real-life device, right. So what the f*&k is wrong with these programmers at Apple, what's up with Safari, what's the real-life device equivalent of a webbrowser

You should not understand this literally. I'm not a Mac user, but this makes perfect sense to me. A Web Browser is in the same class of object as a TV set for example: A device that is used to stream content on one or more channels. The device is used to display the content, but it is not the content.
In document oriented applications, the window _is_ the document. This is true for applications like Pages or Preview.
The separation between these two kinds of applications is often very confusing (for example many people still don't get the fundamental differences between the Nautilus File Browser and a folder displayed by Nautilus). Using a different LAF for device-like windows (virtual or realistic) makes a lot of sense to me and I wouldn't mind to see the idea being adopted by free software desktops.
It also looks better.