static JMenu addFullyDynamicMenu(Component c, S menuName, final VF1 populate) { final JMenu m = addMenu(c, menuName); addMenuListener(m, new MenuListener { public void menuSelected(MenuEvent e) { clearMenu(m); callF(populate, m); } public void menuDeselected(MenuEvent e) { clearMenu(m); } public void menuCanceled(MenuEvent e) { clearMenu(m); } }); ret m; }