Boa noite pessoal vai ser difícil de explicar mais vamos lá eu tenho um código de formulário jFrame feito pelo professor que foi gerado automaticamente pelo netbeans quando se vai desenhar as janelas. Dentro desse código têm um metódo chamado initComponents(){
com o código de centralizar janelas:
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-192)/2, (screenSize.height-114)/2, 192, 114);
Mas toda vez que eu gero um jFrame pela ferramenta de desenho do netbeans no lugar desse código tem um simples:
pack();
Como eu queria usar esse código eu fechei o netbeans e substitui no bloco de notas está funcionando perfeitamente exceto o tamanho da janela. Como eu ainda estou editando o desenho do projeto seria muito inconveniente eu mudar esses números pelo bloco de notas já que o netbeans não me deixa editar direto.
Pergunta têm algum botão na paleta ou alguma forma de editar esse código diretamente ou até mesmo de gerar ele já que eu fiz essa gambiarra pelo bloco de notas?
cara não é recomentado você tentar mexer no código gerado pelo netbeans. ao invés disso você pode botar seu código abaixo da chamada do initComponents que fica no construtor…
agora vai uma dica para centralizar.
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation((screen.width - this.getWidth())/2, (screen.height - this.getHeight())/2);
Opá valeu pela força. Esse código que você passou é bastante semelhante com o do meu professor eu testei ele dentro do construtor e fiz os devidos imports só que eu não sei ai na sua máquina mais na minha ele pisca bem rápido no canto superior esquerdo da tela antes de centralizar, ou seja, o código realmente funciona mais fica com esse problema.
Será que têm algum jeito de corrigir isso?
Eu sempre uso esse comando para centralizar a janela;
setLocationRelativeTo(null);
Uso Eclipse e funciona perfeitamente;
[quote=Onimatsu]Opá valeu pela força. Esse código que você passou é bastante semelhante com o do meu professor eu testei ele dentro do construtor e fiz os devidos imports só que eu não sei ai na sua máquina mais na minha ele pisca bem rápido no canto superior esquerdo da tela antes de centralizar, ou seja, o código realmente funciona mais fica com esse problema.
Será que têm algum jeito de corrigir isso?
[/quote]
Isso acontece pois você está colocando este código depois de executar o “setVisible(true)”. Por isso ele “pisca”.
Coloque antes do “setVisible(true)”.
[quote=felipeaps]Isso acontece pois você está colocando este código depois de executar o “setVisible(true)”. Por isso ele “pisca”.
Coloque antes do “setVisible(true)”.[/quote]Então ele tinha que calcular a posição da janela antes de mostrar. Agora todos os códigos funcionaram perfeitamente mas optei pelo setLocacitonRelativeTo(null); por ser mais resumido.
Agradeço a atenção de todos. Obrigado!