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.JCheckBox; import javax.swing.JComponent; public class Main { public static JCheckBox getOnlyCheckBox(Container owner) { return (JCheckBox) getOnlyComponent(owner, JCheckBox.class); } private static JComponent getOnlyComponent(Container owner, Class<?> clazz) { return getOnlyComponent(owner, clazz, false); } private static JComponent getOnlyComponent(Container owner, Class<?> clazz, boolean onlyVisible) { List<JComponent> list = getComponents(owner, clazz, onlyVisible); if (list.size() != 1) throw new IllegalStateException( "num " + (onlyVisible ? "visible " : "") + "compounds found " + list.size()); return list.get(0); } 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; } }