BlankFrame frame = new BlankFrame(closeAllButton);
frame.setVisible(true);
In questo caso frame è una variabile locale dichiarata all'interno del metodo actionListener.
Nella classe che contiene la dichiarazione di questo metodo dichiara la variabile BlankFrame frame di accesso pubblico.
Prima di istanziare la nuova BlankFrame verifiche che la variabile frame sia nulla prima di istanziarne un'altra.
Importante è che quando la classe BlankFrame chiama dispose() la variabile presente in MulticastPanel non viene aggiornata.
Una soluzione potrebbe esser quella di passare alla funzione BlankFrame oltre a closeAllButton anche this ( riferimento alla classe MulticastPanel ) e prima di fare la chiamata al metodo dispose() fare riferimentoAllaClasseMPanel.frame = null;

In questo modo possiamo controllare di non istanziare infinite frame....
Se non sono stato chiaro chiedi!