code: public void dispose(){
  		Collection pageComponents = new ArrayList(pageComponentMap.values());
  		Iterator it = pageComponents.iterator();
  		while(it.hasNext()){
  			PageComponent pageComponent = (PageComponent)it.next();
  			remove(pageComponent);
  		}
  		contentPane.dispose();
  		contentPane = null;
  		super.dispose();
  	}
docs: Overridden close method to avoid memory leaks by Mikael Valot