Centralizando uma janela em Java

Publicado por Perfil removido em 05/11/2005

[ Hits: 13.864 ]

 


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:

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();
   }
}
Outras dicas deste autor

Assistindo DVD no Ubuntu 6.06 pelo Kaffeine

Arch Linux com Xfce 4 - Controle de Volume

Montar partição NTFS com leitura/escrita no FreeBSD

Webcam do MP10 "nokla" E71 no Ubuntu 9.10

Instalar MATE Desktop no Mageia 3

Leitura recomendada

Mantendo seu Eclipse atualizado

Dica 2 em 1: JavaFX no Ubuntu e instalação do plugin JavaFX no Netbeans 6.5 no Ubuntu

Extendendo a classe ArrayList para criar listas sem repetição

Jmol - Modelador de moléculas

Rodando páginas JSP no Apache

  

Comentários
[1] Comentário enviado por pascoalmorais em 01/03/2007 - 11:19h

Tentei Rodar a sua Dica, mais não funcionou, tem um probleminha...

[2] Comentário enviado por magp3 em 06/05/2007 - 00:12h

Olá Melo
Hoje em dia ja temos o
setLocationRelativeTo(null);
que posiciona a janela no centro da tela
mas valeu a sua dica para saber como pegar o tamanho da tela !
Abraçoo

[3] Comentário enviado por claudiorms em 12/03/2009 - 01:00h

Boa noite Srs. eu sou novo no linux estou no 3º semestre da ciência da computação porem estou estudando java usando NetBeans
e fiz o modulo 1 de lpi então gostaria de saber como programar em javas usando a distribuiçã ubutum ou debian porque gostaria de
praticar em casa utilisando o sistema operacional gnu linux debian ou ubutm.

Se poder me passar a dica fico muito agradecido


meu e-mail: claudyo-gt@hotmail.com




Desde ja agradeço
E abraço a todo



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts