Hola:
Primero debes "desactivar" el comportamiento de la x
ventana.etDefaultCloseOperation(WindowConstants.DO _NOTHING_ON_CLOSE)
Luego añadirle el comportamiento que tú quieras,
ventana.addWindowListener(WindowListener)
En el WindowListener que le pases, implementa el metodo windowClosing() y ahí cierra los ficheros y la ventana (recuerda que has desactivado el comportamiento por defecto)
http://docs.oracle.com/javase/tutori...wlistener.html
Se bueno.