Supporting the Mac OS menubar in JavaFX

Jonathan Giles jonathan.giles at oracle.com
Fri Dec 9 14:56:24 PST 2011


Hi all,

One of the things we're planning to support in JavaFX 2.1 is the native 
Mac OS menubar. This email is intended primarily to discuss the API one 
expects to see to set a MenuBar in the native Mac OS menubar area. Your 
feedback is sought and will be very much appreciated.

The current thinking is that Application feels like the right place to 
specify a global, application-wide javafx.scene.control.MenuBar on. It 
could be assumed that if a developer were to set this property, and the 
operating system upon which the end-user was running the JavaFX 
application was Mac OS, that the menubar will be displayed using the 
native Mac OS menubar. Of course, if a developer wants a cross-platform 
look and feel, they could just place the MenuBar in the stage as per 
usual and it would display as it currently does. This approach opens up 
a number of questions and issues:

1) What happens in the case of the end-user being on Windows? Is the 
Application.MenuBar ignored, or is it automagically added to the main 
Stage? (I would argue for totally ignoring it....but that leads to the 
next point).
2) This approach means there needs to be operating specific code in the 
UI to test whether a non-native MenuBar should be added (in the case of 
Windows, for example). This starts to clutter the UI code, and without 
careful consideration by the developer may result in needing to 
duplicate their MenuBar code. Is there a better approach?

Another place to specify a MenuBar would be on Stage, rather than (or in 
addition to), Application. Having a MenuBar property on Stage would 
allow for the MenuBar to change based on the currently focused Stage - 
but I'm not certain this is desirable or even the expected behaviour of 
Mac OS. Therefore, I'm thinking that this is not likely to happen unless 
we hear otherwise.

Like I said, we're at a very early exploration point in this process. 
The controls team is very keen to hear feedback from the community, as 
well as from the owners of the Application API, and the Mac OS experts 
on this list.

Thanks,
-- Jonathan


More information about the openjfx-dev mailing list