Java tutorial
//package com.java2s; //License from project: Open Source License import java.awt.Component; import java.awt.Container; import java.util.ArrayList; import java.util.List; import javax.swing.AbstractButton; import javax.swing.JComponent; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; public class Main { public static JMenuItem getMenuItem(JMenuBar menu, String text) { for (int i = 0; i < menu.getMenuCount(); i++) { JMenuItem m = getMenuItem(menu.getMenu(i), text); if (m != null) return m; } return null; } private static JMenuItem getMenuItem(JMenu menu, String text) { for (Component c : menu.getMenuComponents()) { if (c instanceof JMenu) { JMenuItem m = getMenuItem((JMenu) c, text); if (m != null) return m; } else if (c instanceof JMenuItem && ((JMenuItem) c).getText().equals(text)) { return (JMenuItem) c; } } return null; } public static JMenuItem getMenuItem(Container owner, String text) { return (JMenuItem) getAbstractButton(owner, text); } private static AbstractButton getAbstractButton(Container owner, String text) { for (Component c : owner.getComponents()) { if (c instanceof AbstractButton && ((AbstractButton) c).getText() != null && ((AbstractButton) c).getText().equals(text)) return (AbstractButton) c; else if (c instanceof JComponent) { AbstractButton b = getAbstractButton((JComponent) c, text); if (b != null) return b; } } return null; } public static List<JComponent> getComponents(Container owner, Class<?> clazz) { return getComponents(owner, clazz, false); } public static List<JComponent> getComponents(Container owner, Class<?> clazz, boolean onlyVisible) { List<JComponent> list = new ArrayList<JComponent>(); for (Component c : owner.getComponents()) { if (clazz.isInstance(c) && (!onlyVisible || c.isShowing())) list.add((JComponent) c); else if (c instanceof JComponent) { for (JComponent b : getComponents((JComponent) c, clazz, onlyVisible)) list.add(b); } } return list; } }