hola:
¿Quienes son "todas ellas"?. Si son las demás ventanas de otros programas que están corriendo en el sistema operativo no creo que sea fácil ni tampoco aconsejable. Sería bastante frustante una aplcación que no deja echarla atrás momentaneamente para trabajar con otras cosas.
Si "todas ellas" son otras ventanas de tu propia aplicacion, es cuestión de construir el
JFrame y los JDialog con la jerarquia adecuada de padres.
De todas formas, tienen el método toFront() que supuestamente las pone al frente, aunque sólo en el momento de llamarla. Si la jerarquía no es adecuada, aunque hagas toFront(), luego podrás ponerla detrás. Siempre puedes añadir un listener de forma que si se va detrás (pierde el foco), llame al toFront() para ponerse otra vez delante.
Se bueno.