[Resolvido] Como sobrepor um Jpanel com outro Jpanel

Galera, a minha ideia é a seguinte:

Quero diminuir a quantidade de janelas criadas no meu sistema, e estou tentando adaptar isso criando alguns JPanels.

Quero saber qual a forma correta de criar vários JPanels, conseguir sobrepor estes JPanels e ficar dando setVisible para visualizar os que for solicitado pelo usuário.

Pergunta é:

Tem como eu ter 10 Jpanels em um JFrame, e a partir da solicitação do usuário eu ficar visualizando o JPanel requerido?

Fico no aguardo.

Alternativa 1 - CardLayout:
http://docs.oracle.com/javase/tutorial/uiswing/layout/card.html

Adequado para telas do tipo “Help” ou sequencias de passo-a-passo.

Alternativa 2 - TabbedPane:
http://docs.oracle.com/javase/tutorial/uiswing/components/tabbedpane.html

Abas são um bom substituto para janelas não modais.

Para coisas modais, continue na boa e velha JDialog mesmo. Até é possível bloquear uma aba, mas isso não é um padrão com os quais os usuários estejam acostumados.

ViniGodoy muito Obrigado por seus comentários.

A utilização do Layout GridBagLayout esta atendendo as minhas necessidades.

O que estou fazendo é colocar Jpanel em cima de jpanel e ficar dando setvisible nos mesmo.

Eu lhe pergunto: A utilização deste Layout, pode me trazer dificuldades ou alguma limitação posterior?

Agradeço a sua ajuda.

Creio que não. O CardLayout só facilita esse processo, se você tiver uma área fixa.
Por outro lado, ele exige que todos os paineis estejam criados de antemão. E todos ficam lá, ocupando memória.

[quote=ViniGodoy]Creio que não. O CardLayout só facilita esse processo, se você tiver uma área fixa.
Por outro lado, ele exige que todos os paineis estejam criados de antemão. E todos ficam lá, ocupando memória.[/quote]

Ok ViniGodoy, entendido.

Muito Obrigado!

E acabei de utilizar um modelo de tabela criado por mim lendo seus artigos, e parei de utilizar DefaultTableModel.

Vlw…

[Tópico Resolvido]

Ae, parabéns. :slight_smile:

Garanto que isso vai facilitar muito a sua vida.
É um pouco difícil aprender a se livrar do Default, mas você só precisa fazer isso uma só vez. :slight_smile:

Em compensação, quem insiste no Default fica corrigindo bugs estranhos e mantendo código porco pro resto da vida!

Eu acho que vale mais a pena você usar o CardLayout como o ViniGodoy recomendou.

De inicio pode parecer que não faz diferença. Mas quando seu sistema crescer, talvez seja difícil manter todos os painéis.

Eu já utilizei CardLayout em um sistema. De início é meio complicado de entender, mas depois de construído, fica fácil de dar manutenção.

[quote=Stacker]Eu acho que vale mais a pena você usar o CardLayout como o ViniGodoy recomendou.

De inicio pode parecer que não faz diferença. Mas quando seu sistema crescer, talvez seja difícil manter todos os painéis.

Eu já utilizei CardLayout em um sistema. De início é meio complicado de entender, mas depois de construído, fica fácil de dar manutenção.[/quote]

Estou utilizando o GridBagLayout como dito acima, e até o momento esta me atendendo perfeitamente.

Estou pretendo utilizar no maximo 10 JPanels um sobre o outro.

Nunca utilizei o CardLayout, e nem entendo seu funcionamento ainda.

Mais irei pesquisar e procurar entender, para ver quais as vantagens que o seu uso pode me trazer de acordo com minhas necessidades.

Agradeço por seus comentarios.

Vlw…