< prev index next >
src/java.desktop/macosx/classes/com/apple/eawt/_AppMenuBarHandler.java
Print this page
@@ -23,13 +23,17 @@
* questions.
*/
package com.apple.eawt;
+import java.awt.Container;
import java.awt.Frame;
-import javax.swing.*;
+
+import javax.swing.JFrame;
+import javax.swing.JLayeredPane;
+import javax.swing.JMenuBar;
import javax.swing.plaf.MenuBarUI;
import com.apple.laf.ScreenMenuBar;
import sun.awt.AWTAccessor;
import sun.lwawt.macosx.CMenuBar;
@@ -100,14 +104,19 @@
// intentionally clearing the default menu
nativeSetDefaultMenuBar(0);
return;
}
- final MenuBarUI ui = menuBar.getUI();
+ Container parent = menuBar.getParent();
+ if (parent instanceof JLayeredPane) {
+ ((JLayeredPane) parent).remove(menuBar);
+ }
+
+ MenuBarUI ui = menuBar.getUI();
if (!(ui instanceof AquaMenuBarUI)) {
- // Aqua was not installed
- throw new IllegalStateException("Application.setDefaultMenuBar() only works with the Aqua Look and Feel");
+ ui = new AquaMenuBarUI();
+ menuBar.setUI(ui);
}
final AquaMenuBarUI aquaUI = (AquaMenuBarUI)ui;
final ScreenMenuBar screenMenuBar = aquaUI.getScreenMenuBar();
if (screenMenuBar == null) {
< prev index next >