Die beiden Fragen haben nicht das geringste miteinander zu tun :bae:
a) Es gibt einen "Pseudokonstruktor", den Finalizer. Man muss dazu die Methode "finalize" von Object überschreiben. Der Finalizer wird aufgerufen, wenn der Garbage Collector das Objekt entgültig löschen möchte. Eine Garantie für einen Aufruf, hat man aber nicht.
b) Für dem Fenster einen WindowListener (oder ein WindowAdapter) hinzu (addWindowListener(...)). Die Methode "windowClosing" wird aufgerufen, kurz bevor das Fenster geschlossen wird. Die Methode "windowClosed" nachdem das Fenster zu ist.