Estou criando um JFrame em tempo de excução e neste JFrame esta rodando um pequeno game que fiz em java. O problema é que o JFrame nunca fica do tamanho exato que gostaria que ele ficasse. Sempre fica faltando uns 30 pontos embaixo e uns 15 na direita ou seja a janela sempre fica menor. Ja testei de tudo com setSize, setPreferredSize, layout nulo etc mas nada funciona… Alguma idéia?
Tem duas maneiras. Ambas meio xunxadas.
a) Configurar usando os insets:
[code]public MyFrame(int width, int height){
JFrame temp = new JFrame;
temp.pack();
Insets insets = frame.getInsets();
temp = null;
this.setSize(new Dimension(insets.left + insets.right + width,
insets.top + insets.bottom + height));
this.setResizable(false);
}[/code]
b) Adicionando um painel e chamando pack:
public MyFrame(int width, int height) {
JPanel temp = new JPanel();
temp.setPreferredSize(new Dimension(width, height));
this.add(temp);
pack();
this.remove(temp);
this.setResizable(false);
}
Mais informações: http://pontov.com.br/site/java/48-java2d/123-a-primeira-animacao
Deu certo amigo, valeu (usei a opção numero 2 pois foi a que pude entender como funciona)
Flws!
O inset é só uma classe que te diz a medida da decoração da janela. O primeiro código simplesmente soma essa medida ao tamanho da janela, para que o conteúdo em si fique do tamanho que você quer.