When developing a Java application on OS X, the last thing you would want your users to do is learn the behaviors that are unique to your application. This is why you should work on making your application look native to the platform. So how do you achieve that with your Java application running on OS X?
With OS X, there are several techniques in making your Java menus look native on the platform.
Menu bar. It is highly recommended to remove menus from your windows and then putting these in the menu bar. But keep in mind that doing so would mean that your menus would disappear once you close your frame. This is not how a native application works on OS X, wherein the menu bar for active applications is always visible, even though the window is currently closed.
Application menu. If you are using AWT/Swing, you would automatically get an Application menu that looks and feels like OS X applications. You can just customize your Application menu according to your desires.
Window menu. A Window menu helps you keep track of all active windows. It would list all windows and place a checkmark next to the active ones. Selecting a window would bring that window to the front of your screen. If you open a window, it should be added to the Window menu, while closing one should remove it from the list.
Accelerators. If you need to add keyboard shortcuts, do not define it manually. Instead, you should use the java.awt.Tookit.getMenuShortcutKeyMask() to get the system to assign one for you.
Pop up menus. OS X fully supports pop-up menus or contextual menus. These menus are triggered by a Control click or a right click with your mouse. The important thing to remember is that contextual menus are triggered by a mouse click, so you need to define it in java.awt.event.MouseEvent.
Dock. There are five different procedures for managing your application’s Dock icon. These are:
- public java.awt.Image getDockIconImage()
- public void setDockIconImage(java.awt.Image)
- public java.awt.PopupMenu getDockMenu()
- public void setDockMenu(java.awt.PopupMenu)
- public void setDockIconBadge(String)
There are several design methods that you should keep in mind when you are doing your design.
- Use layout managers instead of specifying the x-y coordinates of your components. Using the layout manager would help you place your components while also considering the ideal sizes of all your components. This will also help you size your components easily.
- You can nest several JPanels that use BorderLayouts to create a portable layout. Do not worry, you can nest a lot of JPanels and still would not have problems with your application’s performance.
- If you want to customize the colors of your components, then be sure not to blindly set an explicit color. Instead, you should query the UIManager class to check if your desired color would work well on both OS X.
There are just some of the things that you should remember when integrating your Java application to OS X? If you need more tips, contact Four Cornerstone. We can help you! We have a team of skilled programmers who can create customized apps using Java.
Photo courtesy of jbvkoos.