Linked by Andy Roberts on Thu 19th May 2005 19:33 UTC
Java 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:
Permalink for comment
To read all comments associated with this story, please click here.
RE: It's not really the ugliness ...
by Romain Guy on Thu 19th May 2005 20:40 UTC

I understand your concern. The fact is developing a Swing application does not give you good performances for free. You have to know how Swing works. When you do, then you can use it wisely. The most common problem is related to event handling and the Event Dispatcher Thread (EDT). When you click on a button, your code runs in the EDT and if you perform long operations in this thread, you block the whole app. There are dozens of good documentation about how to work around this problem and it is very easy. When you do that correctly, 90% of the responsiveness problems disappear.

Myrd: Blaming Java application for not looking perfectly native on MacOS X is not relevant I think. First, remember that Java needs to cope with multiple platforms and it cannot, at least easily, offer a perfect look and feel on each of them and still bring you the portability you would expect. Having a perfect Windows XP look and feel and a perfect Aqua look and feel for the same app can be very tricky: the differences between them might totally break the UI design. An application that looks fine with Plastic look and feel might just looks awful with Aqua, because its layout is not optimized for this look and feel. This is a very complex issue. At last, as much as I love my Mac and MacOS X, let's be honest, there are a lot of inconsistencies accross the applications shipped with OSX. Java on MacOS X needs attention on other more important issues. There are real problems with complex painting operations for instance, both in Java 1.4.2 and Java 1.5.