| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/11/2007 14:26:24
|
RenataFA
Virtual Machine Man
![[Avatar]](/images/avatar/c05c903e3d997added79518f0e850026.jpg)
Membro desde: 24/08/2006 08:15:10
Mensagens: 698
Offline
|
Boa tarde amigos,
Estou com um probleminha na minha aplicação, então reproduzi meu probleminha num exemplo pequeno, pra poder testar. Não reparem nas telas, como falei, se trata de um exemplo.
Bem, eu tenho meu JFrame chamado Main:
No qual tenho o seguinte construtor:
E tenho meu JInternalFrame chamado Form:
No qual tenho o seguinte construtor:
No final, obtenho o seguinte resultado:
Isso é QUASE o que eu queria. Eu queria que ele centralizasse o JPanel que eu usei pra colocar o JInternalFrame dentro. Mas não consigo! Eu assinalei no código acima a linha em que eu estou mandando centralizar. Já coloquei valores fixos naquele comando pra ver se o problema era com minhas contas, mas que nada! Ele não obedece o setLocation.
Por favor, alguém pode me ajudar?!
Grata
This message was edited 1 time. Last update was at 07/11/2007 15:30:28
|
[]'s, Renata |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/11/2007 15:30:01
|
RenataFA
Virtual Machine Man
![[Avatar]](/images/avatar/c05c903e3d997added79518f0e850026.jpg)
Membro desde: 24/08/2006 08:15:10
Mensagens: 698
Offline
|
Pessoal, problema resolvido!
O Victor (Ratão) me ajudou pelo MSN. Deixo aqui a solução pra quem tiver um problema parecido. No construtor do Form, invés de usar setPreferredSize e depois setLocation, coloquei os seguintes comandos:
Vlw Victor!!!
|
[]'s, Renata |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/11/2007 15:31:19
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline
|
Você deu um setLayout(null); no seu JFrame?
Para centralizar direitinho, você também precisa levar em consideração os insets do seu JFrame. Os insets são as áreas não uteis da decoração do frame (barra de título e borda lateral) e podem ser obtidos com o método getInsets().
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/11/2007 15:37:25
|
Ratao
Virtual Machine Man
![[Avatar]](/images/avatar/e0e6518d2cac6a5b1fa6b05498a5e7be.jpg)
Membro desde: 14/05/2006 22:09:25
Mensagens: 529
Localização: Cachoeiro de Itapemirim - ES
Offline
|
Não foi nada Renata! Depois de tanto me ajudar rsrsrs...
Esse assunto que o Vini tocou eh uma boa. Eu não sabia dessa parte!
Valew!
|
"Não existe limites para a mente humana... sendo então ilimitado nosso poder de realização."
Victor Zangerolame Fim |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/11/2007 16:21:43
|
RenataFA
Virtual Machine Man
![[Avatar]](/images/avatar/c05c903e3d997added79518f0e850026.jpg)
Membro desde: 24/08/2006 08:15:10
Mensagens: 698
Offline
|
Eu tava fazendo isso mas na mão...rs... subtraindo os pixels...
Vlw Vini!
|
[]'s, Renata |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/12/2008 14:25:23
|
asd
Debugger
Membro desde: 03/11/2008 17:04:36
Mensagens: 59
Offline
|
Me desculpem ressucitar o topico, mas alguem poderia me explicar o que o ViniGodoy disse?
Eu quero centralizar um painel. Eu sei aonde ele deve estar (na metade da largura e da altura do JFrame, certo?). Mas como colocar ele ali?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/12/2008 08:19:51
|
RenataFA
Virtual Machine Man
![[Avatar]](/images/avatar/c05c903e3d997added79518f0e850026.jpg)
Membro desde: 24/08/2006 08:15:10
Mensagens: 698
Offline
|
RenataFA wrote:Pessoal, problema resolvido!
O Victor (Ratão) me ajudou pelo MSN. Deixo aqui a solução pra quem tiver um problema parecido. No construtor do Form, invés de usar setPreferredSize e depois setLocation, coloquei os seguintes comandos:
Vlw Victor!!!
Esse meu post acima é a resposta, foi assim que funcionou.
|
[]'s, Renata |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/12/2008 16:38:12
|
asd
Debugger
Membro desde: 03/11/2008 17:04:36
Mensagens: 59
Offline
|
renata,
pois e, aqui também funcionou. Mas como eu posso adicionar um JPanel embaixo desse que foi centralizado? tipo ficar 2 paineis: o de cima com alguma coisa e o de baixo com outra?
eu não teria que definir algum layout?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/12/2008 07:06:07
|
RenataFA
Virtual Machine Man
![[Avatar]](/images/avatar/c05c903e3d997added79518f0e850026.jpg)
Membro desde: 24/08/2006 08:15:10
Mensagens: 698
Offline
|
asd wrote:renata,
pois e, aqui também funcionou. Mas como eu posso adicionar um JPanel embaixo desse que foi centralizado? tipo ficar 2 paineis: o de cima com alguma coisa e o de baixo com outra?
eu não teria que definir algum layout?
Pq invés de adicionar um JPanel embaixo desse que foi centralizado vc não centraliza um novo JPanel e coloca esse seu em cima dele?
|
[]'s, Renata |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/12/2008 08:32:22
|
asd
Debugger
Membro desde: 03/11/2008 17:04:36
Mensagens: 59
Offline
|
Eu tentei fazer isso, mas como o layout tá em null não consigo adicionar o outro painel
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/12/2008 08:52:43
|
RenataFA
Virtual Machine Man
![[Avatar]](/images/avatar/c05c903e3d997added79518f0e850026.jpg)
Membro desde: 24/08/2006 08:15:10
Mensagens: 698
Offline
|
Uso layout null em tudo aqui. Isso não é motivo pra não conseguir, alguma outra coisa deve estar errada...
|
[]'s, Renata |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/01/2010 18:06:16
|
tominem
Thread.start()
Membro desde: 28/01/2010 21:39:12
Mensagens: 30
Offline
|
bom galera aproveitando a dica do ratão, o meu não ficou exatamente no cetro dá tela mesmo calculando as coordenadas:
então modifiquei um pouco o código, criei um método onde usei flowlayout ao invès de null:
[/code]
public void centralizarContainer(Component pai, Component filho){
// obter dimensões do pai
int larguraPai = pai.getWidth();
int alturaPai = pai.getHeight();
// obter dimensões do filho
int larguraFilho = filho.getWidth();
int alturaFilho = filho.getWidth();
// calcular novas coordenadas do filho
int novoX = (larguraPai - larguraFilho);
int novoY = (alturaPai - alturaFilho);
// centralizar filho
filho.getParent().setLayout(new FlowLayout());
filho.setPreferredSize(new Dimension(novoX, novoY));
filho.repaint();
filho.setLocation(novoX/2, novoY/2);
}
[/code]
Aki funcionou direitinho, testem ae e vejam se funciona. Valew
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/01/2010 18:34:02
|
tominem
Thread.start()
Membro desde: 28/01/2010 21:39:12
Mensagens: 30
Offline
|
fuçando aki ... achei uma solução melhor:
Crio um gridbagLayout no lugar do Flowlayout como anteriormente.
|
|
|
 |
|
|