Rapidinha de java #3
Percebendo a demanda de perguntas sobre o assunto em fórums de java e uma dúvida que já tive sanada, venho a publicar como centralizar "telas" em java.
Jeito trabalhoso:
Classes utilizadas nessa demonstração: Container, Dimension, JFrame, Toolkit.
Container: é uma classe container responsável pela adição de componentes do pacote AWT.
Dimension: é uma classe responsável por encapsular largura e altura de um componente, recebendo as dimensões retornadas pelos métodos dos respectivos objetos.
JFrame: esta é uma extensão da classe Frame do pacote awt, mas que possui suporte aos componentes do pacote swing, sendo que o JFrame é totalmente incompatível com a classe Frame, esta classe provê tarefas básicas de uma janela.
Toolkit: esta classe é uma superclasse abstratas de todas as implementações do pacote AWT, ela contém um "pacote" de tarefas básicas, como a que vamos utilizar aqui que é retornar a resolução da tela do usuário.
Então vamos colocar a mão na massa e comentar alguns pontos que considero relevantes:
| Código: |
| import java.awt.Container;
import java.awt.Toolkit; import java.awt.Dimension import javax.swing.JFrame; /* Estamos herdando métodos e atributos da classe JFrame */ public class Demonstracao extends JFrame { /* Declaração das ações a serem executadas pelo contrutor default */ public Demonstracao() { /* Passa o argumento que irá definir o título da janela ao construtor da superclasse JFrame*/ super("Classe de demonstracao"); /* Aqui atribuimos a referência container o método que retorna o painel de conteúdo de JFrame */ Container container = getContentPane(); } /* Aqui iniciamos o corpo do método main */ public static void main (String args[]) { /* Instanciamos a classe Demonstracao, que possui todos os métodos e atribuitos de JFrame */ Demonstracao janela = new Demonstracao(); /* Invocamos o método que irá definir o tamanho da janela da classe Demonstracao */ janela.setSize(250,250); /* Aqui atribuimos uma refência para a classe Dimension que irá receber e encapsular os valores retornados pelo método getScreenSize, primeiro invocamos o método que getDefaultToolkit que irá nos retornar um objeto default toolkit e nos possibilitar utilização do método getScreenSize() para retornar o valor da resolução de tela em pixels; Dimension tela = Toolkit.getDefaultToolkit().getScreenSize(); /* Aqui estamos utilizando a referência com os métodos de largura(Width) e altura(Height), diminuimos pelo tamanho do JFrame e dividimos por 2, fazendo o casting para inteiro, para que possamos ter a posição exata e central da tela. int largura = (int) (tela.getWidth() - 250) / 2; int altura = (int) (tela.getHeight() - 250) / 2; /* Por fim utilizamos o método herdado do JFrame para definir a posição do objeto na tela, à partir dos valores obtidos acima */ janela.setLocation(largura,altura); /* Método responsável por definir a "visibilidade" da janela na tela */ janela.setVisible(true); } } |
Jeito simples:
Retirado do fórum do GUJ
Pessoal,não precisa nada disso...eh soh(do JDK1.4 em diante):
| Código: |
| //centraliza o frame na tela
frame.setLocationRelativeTo(null); |
Mais uma vez sairá sem a identação do código porque não tenho paciência para tags html, grato por sua compreensão e no intuito de ter ajudado da melhor forma.
[ ]'s Bruno


