Mailing Lists: Apple Mailing Lists
Image of Mac OS face in stamp
Re: Java Web Start useScreenMenuBar on Tiger
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Java Web Start useScreenMenuBar on Tiger



here is what I found

1. class MacOSXMenuBar

public class MacOSXMenuBar {

public static void main(String[] args) {
System.setProperty("apple.laf.useScreenMenuBar", args[0]);
System.out.println("Argument "+args[0]);
System.out.println("Java version "+System.getProperty ("java.version"));
MacOSXMenuBarGUI.main(args);
}


}

2. class MacOSXMenuBarGUI

import java.awt.*;
import javax.swing.*;
public class MacOSXMenuBarGUI {
    public static void main(String[] args) {
        JFrame normalFrame = new JFrame();
        Container c = normalFrame.getContentPane();
        c.setLayout(new BorderLayout());
        JMenuBar mb = new JMenuBar();
        JMenu m = new JMenu("Test");
        m.add(new JMenuItem("Test 1"));
        m.add(new JMenuItem("Test 2"));
        mb.add(m);
        normalFrame.setJMenuBar(mb);
        normalFrame.setSize(500,500);
        normalFrame.setVisible(true);
    }
}

_______________________________________

Java Web Start

1.4.2_07 menu bar never uses screen menu bar

1.5  situation is more promising:

if /Applications/Utilities/Java/Java Preferences has property Java console = show console
then apple.laf.useScreenMenuBar doesn't work


BUT

if Java console = hide console or Java console = do not start console
apple.laf.useScreenMenuBar  works as expected

if you put
        System.setProperty("apple.laf.useScreenMenuBar", args[0]);
into the
MacOSXMenuBarGUI class
then
apple.laf.useScreenMenuBar  won't work for 1.5 either


so only case when apple.laf.useScreenMenuBar works as expected
is
Java 5
Java console property of the Applications/Utilities/Java/Java Preferences application
has value "hide console" or "do not start console"
and you call System.setProperty("apple.laf.useScreenMenuBar", args[0]);
from the special launcher class that doesn't have any connection with GUI classes
(explicitly or implicitly)


BUT THERE IS A VERY GOOD NEWS
if you use property element in jnlp's resource element:

   <resources>
      <j2se version="1.4*"/>
        <property name="apple.laf.useScreenMenuBar" value="true"/>
    ....
   </resources>

or
   <resources>
      <j2se version="1.5*"/>
        <property name="apple.laf.useScreenMenuBar" value="true"/>
    ....
   </resources>

"apple.laf.useScreenMenuBar" will work on 1.4 and 1.5 platforms doesn't matter how java console will be set (on/off doesn't matter)














_______________________________________________ Do not post admin requests to the list. They will be ignored. Java-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
References: 
 >Re: Java Web Start useScreenMenuBar on Tiger (From: Greg Guerin <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2011 Apple Inc. All rights reserved.