views:

388

answers:

4
A: 

Your solution looks perfect. I assume you intend to factor out the hint code so you reuse it.

add( new JLabel( MessageFormat.format(
  "With {0} you can select multiple items", 
  getMetaKeyHint(),
  BorderLayout.SOUTH );

public String getMetaKeyHint() {
    return System.getProperty( "mrj.version" ) != null ? "COMMAND" : "CTRL" );
}
Steve McLeod
Yes that would be my intention. Although I'd prefer to show the COMMAND key _symbol_, which means the symbol that's printed on the keyboard on the apple/command key.
dhiller
OK, I've edited my question to make it more concise.
dhiller
A: 

I use the following code to check for the system and load accordingly

(System.getProperty("os.name").toUpperCase(Locale.US).indexOf("MAC OS X") == 0 )
Dan
Although your solution may also work, the mac developer guides state that the "proper way" to check wether your application platform is Mac OS X is checking the property "mrj.version" for a non-empty string. Annoying, eh? ;-)
dhiller
+2  A: 

The symbol in question is avaiable through Unicode, and the HTML character sets. All you need to do is make your JLabel display HTML by starting its text string with <html> and then include the character code.

JLabel label = new JLabel( "<html>&#8984; is the Apple command symbol." );

This will work on a Mac, but I've no idea what it'll do on other platforms, although you do seem to have that covered off.

banjollity
THank you for the hint, I will check that out tomorrow at work.
dhiller
+1  A: 

As David points out, you can use the Unicode escape sequence \u2318 although it must be displayed with a font supporting it.

PhiLho