No frame principal ,nele vc adiciona um JDesktopPane coloque um botão por exemplo quando vc clica nele vc colocaria o seguinte codigo.
// painel para adicionar os outros dentro
private javax.swing.JDesktopPane jDesktopPane1;
//cria um JInternalFrame , dentro dele vc coloca os jPanel
JInternalFrame frame = new JInternalFrame(" Titulo do JInternalFrame " );
//cria o painel para ser exibido
NewJPanel p = new NewJPanel();
//adiciona o painel a jonternalframe
frame.add(p);
//faz com q o frame ajuste a tamanho de acordo com jpainel
frame.pack();
//adiciona o JInternalFrame ao jDesktopPane
jDesktopPane1.add(frame);
Acho q assim fica melhor que sair abrindo jframes … bom e isso flw
Também já fiz o mesmo componente, mas usei uma JWindow pra isso. Além de nao aparecer dois frame na barra de inicializar, o mostrador nao possui botões de minimizar, max… ou fechar. Vê aí se serve pra vc: