Looks, Feels, and Restless Natives

I’ve been toying with look and feels for Java a little lately. It is kinda funny that Sun calls Metal the “Cross-Platform” look and feel but it only looks “at home” on Solaris with CDE. But Metal is the default on Windows as well, which means you you either need a to switch to the Windows LAF (but only on Windows, because it won’t run anywhere else — thank heaven for small favors) or package a custom LAF. The Windows LAF is OK for small apps, however is really matches the true windows system about as well as the Aqua LAF does the Mac System. And lets face it, despite a lot of flap about wanting to look like native apps, how many Windows Apps actually look native? Every-time MS released a new version of Office, the look and feel is different and not available to your standard native Windows App. The most popular Windows apps usually don’t have a truly native look and feel, they are either completely different or look like the current version of office. There is not much benefit from looking native on Windows, but you don’t want to look like CDE either.

The default Java look and feel on the mac is “Aqua” and it does a passable job of emulating native mac behavior. But there are small differences, the file and color choosers are way off, and native text boxes on the mac can spell check the Java text boxes can’t. There is a project called Quaqua that corrects a the file choosers and more (I don’t think it tackles the spell checker) but the full version is rather slow.

Speaking of the file chooser, Is there any platform where the default Swing file chooser is considered “good”. Hopefully Sun will work on that.

One fact of Java GUI life is that swing does not obey any platform style guides. Even using one of the enhanced LAFs it requires a lot of work to actually comply with a platform style guide and a lot of “if” statements to target multiple platforms. Visual design tools are no help there. I have a framework to address a small fraction of the differences, but a lot of the time we just pick one way and stick with it. Our menus behave like Mac menus on all platforms (grey-out items instead of hiding) and we use a third-party commercial LAF that looks good on all platforms. We use full-window tabs instead of MDI (Multiple Document Interface) when we need more than one document.

Comments are closed.