public List<Component> showMenuBarMenu(final String menuName, final String... submenuNames) {
		waitForSwing();
		final List<Component> list = new ArrayList<>();
		runSwing(() -> {
			JMenuBar menuBar = tool.getToolFrame().getJMenuBar();
			list.add(menuBar);
			JMenuItem item = findMenu(menuBar, menuName);
			JMenu menu = (JMenu) item;
			JPopupMenu popupMenu = menu.getPopupMenu();
			Rectangle bounds = item.getBounds();
			popupMenu.show(menu.getParent(), bounds.x, bounds.y + bounds.height);
			list.add(popupMenu);
			for (String string : submenuNames) {
				menu = (JMenu) findMenuElement(menu, string);
				popupMenu = menu.getPopupMenu();
				bounds = menu.getBounds();
				popupMenu.show(menu, bounds.x + bounds.width, 0);
				list.add(popupMenu);
			}
		});
		waitForSwing();
//		sleep(5000);
		return list;
	}
Captures the window, including decorations. This will use a {@link Robot} to create a screen
capture, which has the effect of getting all items within the window bounds. This method is
needed if you wish to capture child windows, like popups/hovers.

<P>
Other capture methods will not use the screen capture mechanism, but rather will directly
render the given component. In this case, subordinate windows will not be captured. For
example, see {@link #captureProvider(Class)}.

@param provider the provider's name
@param width the desired width
@param height the desired height
Ghidra/Features/Base/src/main/java/help/screenshot/AbstractScreenShotGenerator.java