Si tiene varias ventanas y la limpieza es sólo para los recursos asignados a la ventana se cierre, añadir un manejador de sucesos apropiada para el evento de la ventana setOnHidden.
Una descripción del evento Window.setOnHidden:
Llamado justo después de la Ventana se ha ocultado. Cuando la ventana está oculta, este controlador de eventos se invoca permitiendo al desarrollador limpiar los recursos o realizar otras tareas cuando se cierra la ventana.
Si crea varias etapas para su aplicación JavaFX, la aplicación se cerrará cuando se cierre la última etapa de la aplicación. Cuando la aplicación se cierra, se llama al método stop de la aplicación, que puede implementar anulándolo en su clase de aplicación.
Una descripción del método Application.stop:
Este método se llama cuando la aplicación debe parar, y proporciona un lugar conveniente para prepararse para salir de la aplicación y destruir los recursos.
En su caso, proporcionar una implementación de Application.stop es probablemente la solución más adecuada.
Hmm..hacer un poco de investigación. Tendrá que registrar algún tipo de oyente que atrape un evento * window closing * y coloque su código allí. – mre