Hola:
"Se queda colgado el programa", "problema con heap space". Entiendo que quieres decir que salta alguna excepción de heap space y el programa deja de funcionar por culpa de eso.
A los 10 o 15 minutos se queda colgado .... ¿usando sus ventanas o sin tocar nada él solito deja de funcionar?.
Lo único que veo raro en el código (en un vistazo por encima, es demasiado largo para mirarlo con detalle) es que pareces crear y deshacer ventanas, paneles y demás sobre la marcha (entiendo que según el usuario va pulsando botones o realizando acciones). Si es así, puedes tener ese tipo de problemas porque las ventanas y paneles son algo complejos de eliminar para asegurarse que el recoletor de basura las tira. Lo mejor sería que hicieras todos los paneles en algún momento sólo una vez y luego los reaproveches.
Otra opción es arrancar el programa dándole más memoria
http://www.consultoriajava.com/publi...eapSpace.shtml pero si el problema es el que te comento (no se liberan correctamente los paneles que vas destruyendo), lo unico que conseguirás es retrasar el problema en el tiempo.
Se buena.