Olá desenvolvedores, seguindo então com nossos estudos sobre threads, implementaremos um painel utilizando a surpclasse JDialog. Assim, entraremos hoje na parte de criação de telas para desktop, com o swing.

O Swing é um framework que a plataforma Java disponibiliza e que compreende um conjunto de elementos gráficos. As aplicações desenvolvidas usando o Swing terão uma aparência semelhante independente do Sistema Operacional que estiver utilizando. O que somente ratifica o lema de portabilidade da plataforma.

No tutorial de hoje iremos implementar uma tela gráfica que nos permitirá “startar” ou parar as threads quando desejarmos, a tela trará informação de data e hora sendo atualizadas em tempo corrente e de forma contínua. Será uma experiência bem legal! Com a implementação de hoje já teremos a base e a lógica para o desenvolvimento de telas em Java Desktop.   

IMPLEMENTAÇÃO COM JDILOG

Para começarmos o projeto criaremos uma nova classe dentro do package cursoJava.thread. Esta classe qual nomearemos de “ExecutarTela” implementará o método main.

O próximo passo será a criação da tela. Em java, cada tela é implementada em uma classe própria. Visto que cada tela apresenta suas particularidades, como um conjunto de componentes, estrutura e regra de negócio. Dessa forma, crie a nova classe “TelaTimeThread” dentro do package cursoJava.thread. Esta nova classe será extendida do JDilog.

Assim, a assinatura da classe que acabamos de criar ficará como exemplificado abaixo.

public static void main extends JDilog{
}

Tudo que reflete um padrão, como por exemplo, dar um nome para a tela, configurações iniciais, ou seja, tudo que será executado previamente antes da exibição da tela é adicionado dentro de construtor.

O construtor será o responsável pela execução de tudo que estiver dentro do seu escopo no momento da execução. No final do construtor chame o método setVisible(true), que mostra ou oculta um componente dependendo do parâmetro, alterando as informações relacionadas ao layout. Este método sempre será adicionado ao final do construtor.

public TelaTimeThread(){
setVisible(true);
}

Feito isso, agora no método principal da classe “ExecutarTela” instancie a classe “TelaTimeThread”, transformando-a assim em um objeto.

TelaTimeThread telaTimeThread = new TelaTimeThread();

Ao executar o programa, a palavra reservada new invocará o construtor que executará a tela chamando o método setVisible();

Começaremos então a trabalhar os componentes da janela gráfica. E por termos estendido a classe TelaTimeThread da superclasse JDialog, teremos acesso a uma série de atributos.

TRABALHANDO COM ELEMENTOS DA TELA

A primeira adição será um título a tela com o setTitle(). Na sequência iremos setar um tamanho padrão a tela, assim, não será mais necessário redimensioná-la a cada execução. Usaremos para este fim o setSize() que receberá as dimensões (largura x altura).

setTitle(“Minha tela de time com Thread”);

No que se refere ao dimensionamento da tela, garanto a você que funcionará bem melhor, se criarmos um objeto Dimension, para o qual passaremos como parâmetro a largura e altura).

setSize(new Dimension(240, 240));

Mas você já deve ter observado que a tela sempre aparece no canto superior a esquerda, e vai ficando chato ter que movê-la a cada execução. Para resolver este problema utilizaremos um comando que centralizará a tela de acordo com o componente, mas como ainda não implementamos nenhum componente, passaremos o valor null. E aproveitaremos para escrever também o comando que impedirá o usuário de redimensionar a tela.

setLocationRelativeTo(null);
setResizeble(false);

EM POUCAS PALAVRAS

Construímos uma tela e a preparemos para receber os componentes, definimos e fixamos um tamanho para ela. Bem como determinamos sua localização no momento da exibição.

Também aprendemos a utilizar recursos importantes como os componentes estendidos da superclasse JDialog, o método setVisible(). E como estruturar a construção de uma janela. No próximo tutorial daremos sequência adicionando os componentes a tela. Eu fico por aqui, nos vemos lá.