< 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 >