Esse artigo faz parte da revista Java Magazine edição 41. Clique aqui para ler todos os artigos desta edição

Atenção: por essa edição ser muito antiga não há arquivo PDF para download.Os artigos dessa edição estão disponíveis somente através do formato HTML. 

Componentes Avançados do Swing

Parte 1: Explorando e Customizando o JCom boBox/JList

Aprenda a customizar os componentes de exibição e seleção de conjuntos de valores do Swing para incrementar o visual das suas aplicações

 

Nesta série em duas partes ,mostramos como incrementar a aparência de componentes visual do Swing para incluir imagens e outros recursos. Vemos conceitos fundamentais referentes à arquitetura de componentes visuais, e exemplos de como customizar dois dos componentes mais sofisticados do Swuing:JComboBox e JTable. Nesta parte, enfocamos o JComboBox.

 

Os exemplos

Os exemplos deste artigo são partes de uma aplicação hipotética de monitoração de redes. A aplicação deve indicar o sistema operacional (SO) de cada servidor e estação de trabalho, exibindo logotipos referentes ao SO em vez de apenas o seu nome, além de outras customizações visuais utilizadas em aplicações profissionais.

Vamos partir de um conjunto de classes de domínio que representam as informações e conceitos utilizados. A Listagem 1 apresenta estas classes, Host e SistemaOperacional, ambas no pacote de dados. Para simplificar e focar melhor na parte visual, a classe SistemaOperacional será apenas uma enumeração (Java 5) que fornece os valores pré-fixados Linux, Windows e MACOSX, e o conjunto de Hosts será fornecido em uma coleção Java, em vez de lido de um arquivo ou banco de dados.

Vamos construir duas telas simples para a visualização destas informações, cada qual em seu próprio exemplo, que pode ser compilado e executado em separado. Veremos adiante e na segunda parte que ambas as telas irão exigir a customização de componentes Swing, mais especificamente JComboBox  e JTable, e estas customizações serão tornadas reusáveis pela criação de novas classes Swing.

Uma tela exibe uma tabela com todos os Hosts e suas propriedades, mostrando o sistema operacional como ícone. A outra exibe apenas um combobox para escolha do sistema operacional, mostrando tanto o ícone quanto o nome do sistema. Iniciaremos pela tela mais simples, a segunda.

 

Listagem 1 Objetos de domínio da aplicação de exemplo.

 

SistemaOperacional.java

 

package  dados:

 

public enum SistemaOperacional   {

 LINUX,   WINDOWS,   MACOSX

}

 

 

HOST.java

 

package dados:

 

public class Host   {

     private  String  nome ;

     private  String  ip ;

     private  SistemaOperacional  so ;

     private in memoriaRAM .

 

    // … construtores, metodo  get/set  omitidos

}

 

A tela do Sistema Operacionais/ JCombobox

Para exibir o combobox de sistema operacionais, primeiro criamos uma classe de modelo que estende DefaultComboBoxModel e é inicializada com todos os valores possíveis de enumeração SistemaOperacional. A Listagem 2 apresenta esta classe, assim como a janela que faz uso dela (JanelaPrincipal). Todas as classes desta tela estão no pacote comboBox. Entre elas, a classe Principal apenas instancia uma JanelaPrincipal e a torna visível.

...

Quer ler esse conteúdo completo? Tenha acesso completo