Basta che la finestra che si apre e blocca l'altra la dichiari come

codice:
JDialog fin2 = new JDialog("seconda finestra", true);
il true serve appunto per disabilitare la finestra da cui è stata aperta questa, se metti false l'altra resta attiva.

Per settare i componenti e le varie opzioni della JDialog fai esattamente come faresti per un JFrame solo che in più hai appunto la possibilità di disabilitare l'altra.

Per quanto riguarda chiamare un metodo alla chiusura basta che nell'ascoltatore di eventi della JDialog dove viene ascoltata la chiusura fai lanciare il metodo che ti serve.

Ciao.