Centralizar JPanel

7 respostas
G

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.

7 Respostas

R

Qual layout você está usando?

G

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…

G

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);

G

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);

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);
G

E sempre bom poder ajudar. ^^

M

Também tem o comando

Aqui funciona :stuck_out_tongue:

G

maruan:
Também tem o comando

Aqui funciona :P

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.

Criado 19 de novembro de 2011
Ultima resposta 20 de nov. de 2011
Respostas 7
Participantes 4