the corner office

a blog, by Colin Pretorius

Metal and Matisse

I've never been a fan of Java's Metal look and feel. I use a few Java apps at work, and they look rather slick. This is because I use Windows at work. The Windows look and feel isn't too bad. I'm learning that the same doesn't apply to Linux.

On Linux systems, you have two non-Metal LAFs to choose from: GTK+ and Motif. Motif is the GUI granddaddy. Motif is old skool. It has that Unixey feel to it, but using it as a GUI theme circa 2007? Just not happening.

The alternative is the GTK+ LAF. It's not bulletproof. I tried it out with a JDesktopPane, and the JInternalFrames are totally broken. The internal window title bar gets hard-positioned at the bottom of the page, nowhere near the actual window, and the min/max icons are far too small. All in all, unusable for an MDI app.

As for Matisse4MyEclipse, some more likes and dislikes:

  • positioning items using Matisse is a lot easier than coding up a layout. As you position items in the form, Matisse gives you guidelines suggesting optimal spacing. Nice and easy.
  • the Visual Studio-like property browser for GUI components is nifty. Again, a helluva lot easier to scan through a list of properties and tweak something, compared to having to dig around in API documentation and hard-code the setting.
  • did I mention that I really don't like Metal? Even with swing.properties being set, I still get the Metal theme when using Matisse4MyEclipse in Eclipse. I haven't dug around too much, but even if I do get it fixed, it's a schlep.
  • speaking of which, I learned that the Java 6-related warnings I get when opening form editors, do matter on Windows. On Windows, I can't open context menus at all. Works fine on Linux though.
  • it's possible to open multiple instances of a Matisse properties window/dialog. Every time you click on the source ('...') button, the dialog opens again. They should either be properly modal or even better, just revert focus whenever re-selected.

On a related note, Swing doesn't have a date picker either. There are a number of free components you can use, but it's not the same. Even SWT has one now, even if it's not the greatest. I know the argument is often that there's no way to have consistent date selection controls across all platforms, let alone one, but even a Java-specific one that looks good and works well would be better than nothing.

{2007.09.26 00:47}

« Democracy, UK style

» Toes