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.
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
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);
G
Gustavo_Zub
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!
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
geovanni
E sempre bom poder ajudar. ^^
M
maruan
Também tem o comando
Aqui funciona
G
Gustavo_Zub
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…