Jens Alfke thinks about Java again, but only for a moment. I tend to agree: If you don’t care much about looks and need a cheap way to get something running on all major platforms, Java UIs are an option; for a consumer app that needs to look cool, it’s totally out of the question. There may be exceptions, but I’m sure they cause a ridiculous amount of work.
My favorite quote from Jens’s post:
You need to [be able to] lay out the user interface components visually, by hand, with total control over where they go. Automated LayoutManagers don’t cut it. A corollary of this is that you can’t move a UI layout from one platform to another and have the computer make everything fit. Computers don’t lay out interfaces by themselves any better than they can translate French to English by themselves.