Java tutorial
//package com.java2s; import java.awt.Container; import java.awt.event.ComponentListener; import java.awt.event.FocusListener; import java.awt.event.HierarchyBoundsListener; import java.awt.event.HierarchyListener; import java.awt.event.InputMethodListener; import java.awt.event.KeyListener; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import java.awt.event.MouseWheelListener; import java.beans.PropertyChangeListener; import java.beans.VetoableChangeListener; import javax.swing.JComponent; import javax.swing.event.AncestorListener; public class Main { private static void disposeContainer(Container container) { if (container == null) { return; } if (container instanceof JComponent) { disposeComponent((JComponent) container); } container.removeAll(); } private static void disposeComponent(JComponent component) { if (component == null) { return; } component.removeNotify(); FocusListener[] focusListeners = component.getFocusListeners(); for (int i = 0; i < focusListeners.length; i++) { component.removeFocusListener(focusListeners[i]); } KeyListener[] keyListeners = component.getKeyListeners(); for (int i = 0; i < keyListeners.length; i++) { component.removeKeyListener(keyListeners[i]); } AncestorListener[] ancestorListener = component.getAncestorListeners(); for (int i = 0; i < ancestorListener.length; i++) { component.removeAncestorListener(ancestorListener[i]); } ComponentListener[] componentListeners = component.getComponentListeners(); for (int i = 0; i < componentListeners.length; i++) { component.removeComponentListener(componentListeners[i]); } HierarchyListener[] hierarchyListeners = component.getHierarchyListeners(); for (int i = 0; i < hierarchyListeners.length; i++) { component.removeHierarchyListener(hierarchyListeners[i]); } HierarchyBoundsListener[] hierarchyBoundsListeners = component.getHierarchyBoundsListeners(); for (int i = 0; i < hierarchyBoundsListeners.length; i++) { component.removeHierarchyBoundsListener(hierarchyBoundsListeners[i]); } InputMethodListener[] inputMethodListeners = component.getInputMethodListeners(); for (int i = 0; i < inputMethodListeners.length; i++) { component.removeInputMethodListener(inputMethodListeners[i]); } MouseListener[] mouseLisetners = component.getMouseListeners(); for (int i = 0; i < mouseLisetners.length; i++) { component.removeMouseListener(mouseLisetners[i]); } MouseMotionListener[] mouseMotionLisetners = component.getMouseMotionListeners(); for (int i = 0; i < mouseMotionLisetners.length; i++) { component.removeMouseMotionListener(mouseMotionLisetners[i]); } MouseWheelListener[] mouseWheelListeners = component.getMouseWheelListeners(); for (int i = 0; i < mouseWheelListeners.length; i++) { component.removeMouseWheelListener(mouseWheelListeners[i]); } PropertyChangeListener[] propertyChangeListeners = component.getPropertyChangeListeners(); for (int i = 0; i < propertyChangeListeners.length; i++) { component.removePropertyChangeListener(propertyChangeListeners[i]); } VetoableChangeListener[] vetoableChangeListener = component.getVetoableChangeListeners(); for (int i = 0; i < vetoableChangeListener.length; i++) { component.removeVetoableChangeListener(vetoableChangeListener[i]); } } }