I think I've mentioned parts of this in other blog entries, but as I was just digging through a Java Swing application that I wrote specifically for the MacOS platform, I ran across the following source code, which sets up all of my system properties for the Mac environment:
try { // set the brushed metal look and feel, if desired System.setProperty("apple.awt.brushMetalLook", "true"); // use the mac system menu bar System.setProperty("apple.laf.useScreenMenuBar", "true"); // set the "About" menu item name System.setProperty("com.apple.mrj.application.apple.menu.about.name", "WikiStar"); // use smoother fonts System.setProperty("apple.awt.textantialiasing", "true"); // ref: http://developer.apple.com/releasenotes/Java/Java142RNTiger/1_NewFeatures/chapter_2_section_3.html System.setProperty("apple.awt.graphics.EnableQ2DX","true"); // use the system look and feel UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) { // put your debug code here ... }
You can find a discussion of several of these property settings on this Apple technical note.
Make these calls early
It's important to note that I make all of these calls almost immediately in the main controller of my Java/Swing application, because most of them (possibly all of them, I can't remember for sure) have to be set before you start creating any Swing components. I've found that these simple settings go a long way towards making my application look and feel more like a native Mac application.