static JMenu addMenu(Component c, S menuName, O... items) { ret addMenu(getFrame(c), menuName, items); } static JMenu addMenu(JInternalFrame frame, S menuName, O... items) { ret addMenu((RootPaneContainer) frame, menuName, items); } static JMenu addMenu(final Component c, fS menuName, fO... items) { final RootPaneContainer frame = getPossiblyInternalFrame(c); ret (JMenu) swing(func { JMenuBar bar = addMenuBar((Component) frame); Pair p = jmenu_autoMnemonic(menuName); JMenu menu = getMenuNamed(bar, p.a); bool isNew = menu == null; ifdef addMenu_debug print("addMenu " + menuName + " " + isNew); endifdef if (isNew) menu = new JMenu(p.a); else menu.removeAll(); menu.setMnemonic(p.b); fillJMenu(menu, items); if (isNew) { bar.add(menu); revalidate((Component) frame); } ret menu; }); }