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

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

PAN>

: windowtext; FONT-SIZE: 10pt" lang=EN-US>

dana; FONT-SIZE: 10pt; mso-bidi-font-style: italic"> 

Para que serve:

Apresentar os primeiros passos para quem está iniciando no desenvolvimento de aplicações em Java. Nesse artigo são abordados temas como: escolha de uma API de componentes gráficos (com comparações entre Swing e SWT), alguns componentes visuais e listeners de eventos da SWT e a aplicação dos padrões MVC e Observer no ambiente desktop.

 

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

Os conceitos apresentados no artigo são úteis e facilmente aplicáveis no desenvolvimento de aplicativos empresariais desenvolvidos em Java, que se propõem a automatizar processos de negócio e precisam de interface gráfica com o usuário.

 

Desenvolvimento para desktop com Java – Parte 3:

O desenvolvimento de aplicações para desktop em Java é menos frequente do que para web ou dispositivos móveis. Hoje é possível implantar sistemas escritos em Java em ambientes antes dominados por linguagens nativas, mas, além da concorrência com ambientes RAD e linguagens nativas, o universo Java com suas APIs e jargões muitas vezes espantam quem quer trabalhar com Java nesse segmento.

Nesse artigo a série introdutória é concluída, com o desenvolvimento da camada de Apresentação e da integração entre ela e a Lógica de Domínio, através do padrão MVC. São apresentados também parâmetros para uma decisão que muitas vezes precisa ser tomada no início do desenvolvimento de uma aplicação desktop em Java: qual API de componentes gráficos será usada: Swing ou SWT.

 

 

Chegamos ao último artigo da nossa série, e nele será abordado o desenvolvimento da camada de Apresentação. Além do desenvolvimento de uma tela, com aplicação do padrão MVC, veremos também uma sugestão para enriquecer a interação entre o sistema e o usuário, através a criação de um listener de eventos.

No segundo artigo foi explicado detalhadamente o processo de criação do projeto no Eclipse, logo, os passos não serão repetidos aqui. Para o leitor interessado em obter o código fonte da aplicação exemplo com o que foi implementado até agora, o download está disponível no site da Java Magazine, com o projeto configurado para o Eclipse 3.4. O quadro “Importando o projeto no Eclipse” mostra o que deve ser feito para baixar e importar o projeto.

O clássico Swing x SWT

A camada de Apresentação é responsável pela interação entre sistema e usuário. Como exemplo dos componentes dessa camada, podemos citar: menus de seleção, telas para entrada e apresentação de dados, caixas de diálogo e componentes que indicam a ocorrência de algum processamento, como cursores de mouse em forma de ampulheta e barras indicadoras de progresso.

Em Java, existem duas bibliotecas de componentes gráficos que disputam a preferência dos desenvolvedores de sistemas desktop: Swing e SWT (Standard Widget Toolkit).

Em comum, ambas têm a característica de serem gratuitas para uso comercial. Mas têm muitas diferenças, como pode ser visto na Tabela 1.

 

Swing

SWT

API oficial da plataforma Java desktop, está disponível nos JDKs e JREs e não precisa de nenhum download adicional para ser usada tanto em desenvolvimento quanto em produção.

Foi desenvolvida pela IBM, e em seguida doada para a Fundação Eclipse, que atualmente é responsável por sua manutenção e evolução. Para que seja utilizada, é preciso realizar o download de um ou mais jars, dependendo das características da aplicação.

Seus componentes visuais são renderizados pela própria JVM, o que pode acarretar perda de performance da aplicação.

Seus componentes são renderizados de forma nativa, pelo Sistema Operacional em que a JVM está sendo executada. Geralmente tem melhor desempenho com menor esforço de programação.

A aparência das aplicações “denuncia” que elas foram desenvolvidas em uma linguagem que não é nativa do ambiente em que são executadas. Além de aspectos visuais, como cores das telas e fontes, diferenças comportamentais também podem ser notadas, como a diferença entre pressionar a barra de espaço ou a tecla “Enter” para acionar um botão através do teclado. Para amenizar essas diferenças, a Swing utiliza o conceito de Look and Feel como forma de deixar a aplicação com “rosto e comportamento” equivalentes ao que o usuário está acostumado.

A aparência e comportamento das aplicações deixam em dúvida quem não acredita que foram desenvolvidas em uma linguagem independente de plataforma. A SWT delega para o SO, através de chamadas nativas (JNI), a responsabilidade de desenhar os componentes, o que faz com que aplicações desenvolvidas em SWT tenham a mesma aparência e comportamento daquelas desenvolvidas com toolkits nativos.

Aplicações desenvolvidas em Swing têm a mesma aparência e comportamento em qualquer SO que sejam executadas (desde que não usem um Look and Feel “de sistema”).

Aplicações desenvolvidas em SWT têm aparência e comportamento distintos, dependendo do SO em que são executadas.

A API Swing tem uma curva de aprendizado mais longa para quem vem de ambientes como Delphi ou VB, principalmente por que faz uso massivo do padrão MVC a nível de componente, o que não é comum nos ambientes nativos mais conhecidos.

A SWT permite uso de MVC a nível de componentes, usando bibliotecas auxiliares, como a JFace (também mantida pela Fundação Eclipse), mas não o obriga. Em geral a utilização de seus componentes básicos lembra a dos ambientes nativos, o que facilita o aprendizado.

Existem IDEs gratuitos, como o NetBeans, que possibilitam a criação de telas através de ...

Quer ler esse conteúdo completo? Tenha acesso completo