Hola:
Si usas un JFrame como principal y un JDialog modal como secundario, consigues el efecto que quieres sin necesidad de hacer nada. De hecho, para eso existen los JDialog modales.
Código Java:
Ver original...
JDialog secundario
= new JDialog (principal,
true); // el true para que sea modal secundario.setVisible(true); // Listo, JFrame queda bloqueado hasta que cierres JDialog.
Se bueno.