void attachToHierarchyOf(Container container) { if (!Arrays.asList(container.getContainerListeners()).contains(this)) { container.addContainerListener(this); } Component[] components = container.getComponents(); for (int i = 0; i < components.length; i++) { attachTo(components[i]); // Will recursively add any child components in } }