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…
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);
geovanni
E sempre bom poder ajudar. ^^
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…