Centralizando uma janela em Java
Dica publicada em Java / Miscelânea
Centralizando uma janela em Java
Quando você cria um programa e quer dar um ar profissional à ele, mostrando que se preocupou com seu design e com detalhes, uma boa é centralizar a janela do programa no desktop. Para isso, infelizmente em Java não existe um método pronto, então você tem que fazer isso por conta própria.
Primeiramente temos que descobrir o tamanho do desktop do sistema, para isso basta fazer chamada ao método estático getDefaultToolkit(), pertencente ao pacote java.awt, que retorna um objeto Toolkit (uma classe que tem uma coleção de métodos que fazem interface com o sistema de janelas do sistema nativo).
Toolkit kit = Toolkit.getDefaultToolkit();
Como o Toolkit, faça chamada ao método getScreenSize(), que retorna um objeto Dimension com as dimensões do desktop nativo.
Dimension dim = kit.getScreenSize();
Para descobrir, por exemplo, a altura do desktop chama-se o método getHeigth().
double h = dim.getHeight();
E com algumas operações de aritmética e algumas conversões está tudo feito. O exemplo abaixo é bastante esclarecedor:
Primeiramente temos que descobrir o tamanho do desktop do sistema, para isso basta fazer chamada ao método estático getDefaultToolkit(), pertencente ao pacote java.awt, que retorna um objeto Toolkit (uma classe que tem uma coleção de métodos que fazem interface com o sistema de janelas do sistema nativo).
Toolkit kit = Toolkit.getDefaultToolkit();
Como o Toolkit, faça chamada ao método getScreenSize(), que retorna um objeto Dimension com as dimensões do desktop nativo.
Dimension dim = kit.getScreenSize();
Para descobrir, por exemplo, a altura do desktop chama-se o método getHeigth().
double h = dim.getHeight();
E com algumas operações de aritmética e algumas conversões está tudo feito. O exemplo abaixo é bastante esclarecedor:
import java.awt.*;
import javax.swing.*;
public class CenterWindow extends JFrame
{
public KWindow()
{
this.setSize(600,400);
Dimension dim = this.getToolkit().getScreenSize();
int x = (int) (dim.getWidth() - this.getSize().getWidth() ) / 2;
int y = (int) (dim.getHeigth() - this.getSize().getHeigth()) / 2;
this.setLocation(x,y);
this.setVisible(true);
}
public static void main(String args[])
{
new KWindow();
}
}
import javax.swing.*;
public class CenterWindow extends JFrame
{
public KWindow()
{
this.setSize(600,400);
Dimension dim = this.getToolkit().getScreenSize();
int x = (int) (dim.getWidth() - this.getSize().getWidth() ) / 2;
int y = (int) (dim.getHeigth() - this.getSize().getHeigth()) / 2;
this.setLocation(x,y);
this.setVisible(true);
}
public static void main(String args[])
{
new KWindow();
}
}