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