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

AN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: red; FONT-FAMILY: Verdana; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial">

PAN>

e="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-bidi-font-style: italic">O componente EasyLookAndFeel livra o desenvolvedor de aplicações de toda a complexidade relativa ao gerenciamento do look-and-feel da aplicação. O componente também provê diversas formas comuns para a seleção do look-and-feel, além de oferecer suporte às formas customizadas.

 

Em que situação o tema é útil:

A aparência é sempre um requisito importante, mesmo quando não está explicito nos documentos. O EasyLookAndFeel é bastante útil no desenvolvimento de aplicações desktop em geral, e mais ainda quando é desejável que a aplicação possua uma aparência padronizada ou ofereça suporte à mudança de aparência, podendo ser integrado facilmente à aplicação, com o mínimo de esforço.

 

EasyLookAndFeel:

A aparência tem uma importância fundamental nas aplicações. O toolkit gráfico Swing nos fornece uma API para manipular o Look-and-Feel (aparência) da aplicação, que muitas vezes não é utilizada por exigir do desenvolvedor um esforço extra que nem sempre cabe nos prazos apertados da nossa realidade. O componente EasyLookAndFeel vem para eliminar esse esforço extra, tornando a tarefa de gerenciar o look-and-feel de uma aplicação extremamente simples. Para utilizá-lo, basta adicionar uma chamada ao método estático start(), da classe EasyLookAndFeel, informando o componente-raiz onde as alterações de aparência serão refletidas e um ou mais adaptadores que definem a forma de como a seleção da aparência será feita. Com isso conseguimos, com uma linha de código, fazer com que nossa aplicação use o look-and-feel padrão do SO e ainda forneça ao usuário a opção de selecionar um look-and-feel, dentre os disponíveis no sistema, em tempo de execução. O EasyLookAndFeel é open source e pode ser baixado do site do Google Code.

 

A aparência é, sem sombra de dúvidas, um ponto que deve ser levado em consideração na construção de uma aplicação de software. Ela tanto pode contribuir para o sucesso, como pode ser responsável pelo fracasso de um produto. O usuário, de modo geral, está acostumado a um padrão, geralmente definido pelo sistema operacional, de aparência e comportamento nas aplicações que utiliza no seu dia a dia. Desta forma, uma aparência diferente pode deixar a aplicação pouco intuitiva e, até mesmo, prejudicar sua usabilidade. Isso pode causar certo receio do usuário com relação a essas aplicações "diferentes". Porém, existem também aqueles que preferem as aplicações com aparência configurável, que pode ser selecionada ou personalizada. Então fica a pergunta: “Como construir uma aplicação que atenda às diferentes necessidades desses usuários, mas sem deixar que o esforço gasto na implementação desses "requisitos secundários" impactem os prazos das funcionalidades principais?”

Geralmente utilizamos os termos Look-And-Feel ou Skin para nos referirmos à aparência de uma aplicação. Uma aplicação é dita skinnable quando possui uma aparência configurável, que pode ser selecionada ou customizada pelo usuário. Temos vários exemplos conhecidos de aplicações skinnable, como: Mozilla Firefox, Winamp, Windows Media Player, etc. No entanto, quando desenvolvemos aplicativos utilitários ou ferramentas, raramente nos preocupamos com esse tipo de característica, muitas vezes por imaginar que acrescentá-la às nossas aplicações deve exigir um esforço monstruoso. Porém, veremos que isso pode ser implementado, com o mínimo de esforço, com a ajuda do componente EasyLookAndFeel.

Não é raro vermos aplicativos escritos em Java que possuem uma aparência diferente da padrão (definida pelo SO). Esses programas geralmente são escritos utilizando o toolkit gráfico Swing, que continua sendo um dos mais utilizados para desenvolvimento de aplicações desktop, devido à sua simplicidade e à existência de editores visuais, como o da IDE NetBeans. Contudo, o próprio Swing já disponibiliza uma API para gerenciar o look-and-feel. Com essa API podemos configurar o look-and-feel de uma aplicação de várias formas, inclusive em tempo de execução. Outra funcionalidade bastante útil é a de listar os look-and-feel's instalados[1] no sistema, possibilitando a criação de uma aplicação skinnable de forma fácil. Porém, a utilização dessa API exige esforço adicional e algumas linhas de código a mais. Quando criamos uma aplicação Swing sem configurar seu look-and-feel, esta geralmente[2] utiliza o MetalLookAndFeel (padrão do Java). É por esse motivo que vemos essa aparência diferente, que chega a causar preconceito nas aplicações Java.

O componente EasyLookAndFeel encapsula toda a lógica relativa ao gerenciamento do look-and-feel, de forma que o desenvolvedor quase não precisa de esforço algum para ter esta característica incorporada em sua aplicação Swing. Com o EasyLookAndFeel é possível deixar uma aplicação com a aparência padrão do SO, e ainda torná-la skinnable com apenas uma linha de código, na maioria dos casos. Este artigo irá mostrar uma visão geral deste componente, seu funcionamento e um exemplo de como utilizá-lo.

Aplicação Exemplo

Primeiramente, vamos criar uma pequena aplicação para que possamos incorporar e testar as funcionalidades referentes ao look-and-feel. A Listagem 1 mostra o código da classe LookAndFeelDemoApp. Esta classe representa uma aplicação Swing simples, que não faz nada além de exibir alguns componentes gráficos na tela. Compile o código e execute a aplicação. Será exibida uma janela semelhante à Figura 1, a qual utiliza[3] o MetalLookAndFeel. Note que temos um menu "Look" que está vazio. É nele que adicionaremos dinamicamente as opções de look-and-feel disponíveis no sistema, para que o usuário possa alterar a aparência da aplicação, ou seja, para torná-la skinnable.

Com nosso código base criado, vamos agora acrescentar o código responsável por gerenciar o look-and-feel da aplicação. Nosso objetivo é fazer com que aplicação seja inicializada com o look-and-feel padrão do SO e, além disso, forneça a opção de alterar o look-and-feel em tempo de execução. Veremos então como implementar estes requisitos utilizando diretamente a API do Swing e, em seguida, com fazê-lo com a ajuda do EasyLookAndFeel.

 

Listagem 1. Aplicação Swing que exibe alguns componentes gráficos na tela. ...

Quer ler esse conteúdo completo? Tenha acesso completo