Hola:
Echa un ojo a JDesktopPane y JInternalFrame, es algo parecido a lo de las ventanas, pero dentro de un panel. El JInternalFrame son las ventanas y el JDesktopPane es el panel del que no pueden salirse esas ventanas. Esta opción es buena si quieres dejar mucha libertad al usuario para que coloque cada cosa donde quiera. Algo parecido usan los IDEs como netbeans o eclipse.
http://www.java2s.com/Code/JavaImages/Figure3.PNG
Otra opción es usar una ventana principal JFrame que tenga dentro un JTabbedPane (pestañas). Puedes poner un panel en cada pestaña y tal.
http://www.randelshofer.ch/quaqua/gu...edgetoedge.png
Finalmente, un JFrame con JPanel dentro colocados como quieras y puede cambiarlos cuando te interese. Tendrías que usar métodos remove(panel) y add(panel). Esta opción puede ser algo compleja y tener efectos extraños en la ventana, como redimensionados extraños o quizás algún parpadeo entre que quitas un panel y pones otro.
Se bueno.