Centralizar JPanel

Olá,

Eu estou com um problema para centralizar um JPanel dentro de outro JPanel.

É assim: Eu tenho um JPanel principal que, conforme o botão que o usuário clicar, recebe um outro JPanel. O problema é que esse JPanel que vai dentro do JPanel principal é aberto no canto superior esquerdo da tela e eu quero que ele seja aberto no centro.

Já fiz algumas tentativas e pesquisei a respeito mas até agora nada. Se alguém souber, por favor, poste em seguida.

Valeu.

Qual layout você está usando?

Como eu estou usando o NetBeans, o layout fica como “Desenho Livre”. Mas eu já tentei outros e nenhum deu o resultado esperado.

Por exemplo, Usei o BorderLayout e mandei o JPanel criado ficar no centro com o BorderLayout.CENTER, mas como o JPanel adicionado é menor que o JPanel que o recebe, ele “espicha” para ficar do tamanho do JPanel externo.

Uma solução possível era não permitir que esse JPanel interno não “espiche”, mas eu não sei como fazer isso…

Uma solução seria usar Layout null.

ficaria assim:

PanelInterno.setSize(400.200);//coloquei valores como teste int x = (PanelExterno.getWidth()/2)-(PanelInterno.getWidth()/2); int y = (PanelExterno.getHeight()/2)-(PanelInterno.getHeight()/2); PanelInterno.setLocation(x,y);

[quote=geovanni.]Uma solução seria usar Layout null.

ficaria assim:

PanelInterno.setSize(400.200);//coloquei valores como teste int x = (PanelExterno.getWidth()/2)-(PanelInterno.getWidth()/2); int y = (PanelExterno.getHeight()/2)-(PanelInterno.getHeight()/2); PanelInterno.setLocation(x,y);[/quote]

Valeu geovanni.!

Não foi bem isso que eu fiz, mas teu código clareou a idéia! :smiley:

Por fim a solução foi essa:

jPanelInterno.setSize(jPanelInterno.getPreferredSize());
int x = jPanelExterno.getWidth() / 5;
int y = jPanelExterno.getHeight() / 12;
jPanelInterno.setLocation(x, y);

E sempre bom poder ajudar. ^^

Também tem o comando

Aqui funciona :stuck_out_tongue:

[quote=maruan]Também tem o comando

Aqui funciona :P[/quote]

Mas é que eu precisava pra um JPanel, e esse método só funciona com JFrames e JDialogs se eu não me engano…

Mas tudo bem, já consegui. Mesmo assim, valeu.