Java tutorial
//package com.java2s; import java.awt.Component; import java.awt.Container; import java.awt.event.MouseListener; import java.util.Arrays; import java.util.LinkedList; import java.util.List; import java.util.Map; import javax.swing.JComponent; public class Main { public static void restoreMouseListeners(final Map<Component, List<MouseListener>> map, final JComponent root) { for (final Component c : getAllSubComponents(root)) { List<MouseListener> listeners = map.get(c); if (listeners != null) for (final MouseListener ml : map.get(c)) { c.addMouseListener(ml); } } } public static JComponent[] getAllSubComponents(Container root) { List<JComponent> comps = new LinkedList<JComponent>(); for (Component c : root.getComponents()) { try { comps.add((JComponent) c); comps.addAll(Arrays.asList(getAllSubComponents((JComponent) c))); } catch (final ClassCastException e) { continue; } } return comps.toArray(new JComponent[comps.size()]); } }