Devi utilizzare JInternalFrame e JDesktopFrame: aggiungi un JDesktopFrame al tuo frame principale, poi per aprire altri frame interni aggiungi i JInternalFrame al JDesktopFrame; vedi i tutorial della sun per sapere meglio come usarli. I JInternalFrame sono utilizzati per disporre un frame all'interno di un contenitore, come un qualsisi componente.

Se invece ti serve solo una finestra di dialogo che ti blocca l'applicazione, ad esempio per avvertire l'utente di un messggio d'errore, o per fargli inserire dell'input, usa JOptionPane.