Criar um JFrame com tamanho exato

3 respostas
vinians

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?

3 Respostas

ViniGodoy

Tem duas maneiras. Ambas meio xunxadas.

a) Configurar usando os insets:
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);
}
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

vinians

Deu certo amigo, valeu (usei a opção numero 2 pois foi a que pude entender como funciona)
Flws!

ViniGodoy

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.

Criado 17 de fevereiro de 2013
Ultima resposta 18 de fev. de 2013
Respostas 3
Participantes 2