Mac OS X Issues

During the implementation on the Mac OS X operating system, some issues appeared. Some of them were more fatal, others could be fixed using a workaround.

The Issues

Issue # Short Name Description Workaround
1 Menu About Name The Menu About Name cannot be set, unless the system property is set at the first place of the program. No other methods may be called before. This issue doesn't affect the other properties, like setting the screen menu bar. Set the property at the first place of the program. Call ApplicationManager.getInstance(String) as soon as possible in the application.
2 Positioning of Windows When positioning windows, the screen menu bar has to be taken into account. Don't place the window at y-coordinates lower than 22. Use the SystemUtils.getPositionOnScreen(Point) method.
3 Maximizing Windows The method JFrame.setExtendedState(JFrame.MAXIMIZED_BOTH) doesn't seem to have any effect. None.
4 Bringing Windows to Front The JFrame.toFront() method has not the desired effect: Instead of setting the focus to the specified JFrame, it just brings the window to front, while the focus remains on the current JFrame. This is a pity, especially because the Apple HI guidelines require a window menu, providing items for bringing each application window to front. The JFrame has to be put into iconified state before.
5 (Screen)MenuBar doesn't get updated The (Screen)MenuBar doesn't get updated, when calling setJMenuBar() on a visible Frame. The system property for displaying the screen menu bar is activated. Call show() after setJMenuBar() .
6 JMenu.getComponents() JMenu.getComponents() returns the components only once. The second time, it doesn't return anything. Copy it into a Collection, then work with the collection.
7 Editable Actions The example application works fine (in 99% of all cases), but the first real application "Texter", doesn't work: Showing one window has no problem, but when a document opens or a new document is created, the cut-, copy- and paste-actions are not available, and return null . None.