Un meccanismo di "callback" per notificare altrove che la dialog si è chiusa è certamente possibile (e una strada che fornisce una valida "astrazione" è appunto una interfaccia).
Ma non è l'unica. Se estendessi JDialog e la facessi "modale", il codice che la usa potrebbe fare:
E puoi farne tutte le varianti che vuoi. Ma qui non c'è alcuna "callback".codice:MyDialog dialog = new MyDialog(frameParente); // ... set dati vari su dialog if (dialog.visualizza()) { // metodo "bloccante", ritorna solo quando la dialog viene chiusa, true indica "ok", altrimenti "annullato" // ... get dati vari aggiornati }