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

ht=34 alt=imagem_pdf.jpg src="/imagens/imagem_pdf.jpg" width=34 border=0>

Explorando o NetBeans 5
Evoluindo o Java no Desktop

Aprenda sobre o novo desenhador de interfaces Swing e as facilidades para construção de módulos de extensão para o NetBeans

Fernando Lozano

O NetBeans é um dos mais antigos IDEs Java, mas seu desenvolvimento nunca esteve em ritmo tão acelerado quanto nos últimos meses. Ainda neste ano, na Edição 24, esta coluna apresentava novidades do NetBeans 4.1, e já estamos aqui falando da versão 5.0. Mas, mesmo com esse curto intervalo de tempo, o incremento no número de versão é justificado pelas novidades apresentadas.

Temos o novo desenhador de interfaces Swing, o suporte facilitado ao desenvolvimento de plug-ins, integração com Struts e JSF e uma janela de opções totalmente reestruturada. Além disso, os recursos para desenvolvimento JEE incluídos no NB 4.1 agora suportam outros servidores além do antigo Sun One Enterprise Server, e há novas estratégias de refatoração, bem como melhorias no editor de código, menor demanda de memória na execução do IDE e maior desempenho. Dois conjuntos de extensões do NetBeans também trazem novidades: o novo NetBeans Mobility Pack que transforma o IDE em um ambiente completo para criação de aplicações Java ME, e o NetBeans Profiler, hoje considerado um dos mais sofisticados profilers do mercado.

Este artigo apresenta as novidades do IDE e mostra detalhadamente a operação do novo desenhador de interfaces, usando um exemplo completo já apresentado nesta coluna.

Layouts de forma interativa e produtiva

O desenvolvimento de interfaces Swing baseadas em layout managers (gerenciadores de layout) sempre foi uma das principais dificuldades dos iniciantes na plataforma Java. A maioria dos gerenciadores padrões do Swing são fáceis de usar, mas o GridBagLayout – o mais poderoso de todos e freqüentemente o único capaz de descrever algumas telas complexas – exige um aprendizado demorado, devido à grande quantidade de restrições e configurações disponíveis para cada componente visual.

Por outro lado, os layout managers ainda são a única solução funcional para o problema de desenhar interfaces gráficas adaptáveis a diferenças em resolução de tela, fontes disponíveis no ambiente do usuário e diferenças em aparência (look-and-feels e temas). Todos os outros toolkits gráficos que se propõem a oferecer portabilidade, como o wxWindows, o SWT e o Gtk, também adotam esta solução (em alguns casos usando nomes diferentes) por força da necessidade.

O desafio sempre foi unir o poder dos gerenciadores de layout à facilidade do desenho interativo e visual de interfaces gráficas. E o NetBeans 5 é o primeiro IDE livre a conseguir esse feito, graças ao seu novo desenhador de telas Swing – chamado de "Matisse" enquanto era um projeto de pesquisa da Sun.

No NetBeans 5, novos containers, por exemplo janelas e painéis, são configurados por padrão com o layout “Free Design” (Figura 1), que ativa os recursos interativos do Matisse. Se for definido para o container qualquer outro gerenciador, o usuário terá apenas os recursos já disponíveis em versões anteriores do NetBeans, não sendo oferecidas facilidades como o alinhamento visual de componentes.

Com o Matisse, ao arrastar componentes pela superfície de um container, são mostradas linhas-guia sempre que o componente se aproxima das bordas da janela, ou é alinhado a outro componente (veja a Figura 2). Ao posicionar componentes segundo estas linhas, suas bordas ficarão ficam vinculadas a cantos da janela ou a outros componentes, preservando assim o alinhamento – mesmo após redimensionamento da janela ou mudança do look-and-feel. As mesmas linhas de guia surgem quando um componente é redimensionado. Isso cria restrições que fazem componente aumentar ou diminuir de tamanho junto com o seu container, ou mesmo baseado em outros componentes. O resultado é que layouts complexos podem ser construídos interativamente com o mouse, sem necessidade de configurar propriedades de layout nem usar customizadores externos como o oferecido na versão 4.x para o GridBagLayout.

O tutorial “Aplicação Completa com NetBeans 5” demonstra o poder do novo desenhador de interfaces do NetBeans. Nele mostramos como construir toda a interface com o usuário da aplicação Lista de Tarefas ("ToDo"), desenvolvida nesta coluna, nas edições 25, 26 e 27. Como você verá, exceto pelos menus da aplicação, todo o posicionamento de componentes dentro das janelas é realizado interativamente via arrastar-e-soltar, sem necessidade de freqüentes visitas à visão de propriedades – e dispensando a inclusão de containers aninhados.

GroupLayout, o segredo do Free Design

Ao ativar o layout default “Free Design”, passamos a usar um novo layout manager chamado GroupLayout, criado especialmente para essa versão do NetBeans. O GroupLayout foi desenvolvido como um subprojeto do SwingLabs no Java.net, e está sendo considerado para inclusão em uma futura versão do Java SE.

O uso do GroupLayout é transparente no desenhador de telas do NetBeans 5, mas o leitor deve estar atento que qualquer aplicação construída utilizando os novos recursos irá necessitar das classes desse novo layout manager. O IDE acrescenta automaticamente o arquivo necessário, swing-layout-0.9.jar (a versão pode variar de acordo com o release do NetBeans), às propriedades de um novo projeto (veja a Figura 3), mas não faz a cópia para a pasta dist que forma a distribuição da aplicação. Será então necessário copiar, junto com as classes da sua aplicação, esse jar (que fica na pasta ide6/modules/ext da sua instalação do NetBeans 5). No final do tutorial são apresentados detalhes sobre este procedimento.

A nova janela de opções

A janela de opções do NetBeans, acessível pelo comando Tools|Options, ganhou design totalmente novo, tornando fácil a localização dos parâmetros de configuração mais utilizados. A reorganização cria uma estrutura com macro-categorias em uma barra lateral e subcategorias em abas no topo da janela (veja a Figura 4).

A janela de opções original do NetBeans ainda está disponível, por meio do botão Advanced Options (Figura 5). Nela são exibidas as opções ausentes na tela de opções inicial, organizadas em uma árvore com categorias e subcategorias.

Desenvolvendo plug-ins

A competição sempre pressiona os concorrentes a melhorarem, e permite que boas idéias surjam e sejam aproveitadas por todos, beneficiando o usuário final. No caso, o NetBeans aprendeu com o Eclipse a importância de se fornecer suporte específico ao desenvolvimento de plug-ins e outras extensões.

O NetBeans 5 traz uma série de assistentes e templates para a criação de componentes incorporados ao próprio IDE, como menus, editores e visões. Também foi atendida uma reivindicação antiga da comunidade de desenvolvedores do NetBeans – uma documentação mais detalhada e tutoriais sobre o uso da API de extensão.

O processo de criação de plug-ins se inicia com uma nova categoria de projetos, chamada NetBeans Plug-in Modules e mostrada na Figura 6. Nela são fornecidos três templates:

§       Module Project – Permite criar um componente isolado de extensão para o IDE.

§       Module Suite Project – Para agrupar um conjunto de módulos (cada qual em seu próprio projeto dentro do IDE) que são interdependentes, de maneira que possam ser instalados e atualizados como um conjunto.

§       Library Wrapper Module Project – Permite empacotar vários jars para inclusão no Library Manager (Figura 7). Este tipo de módulo facilita a configuração de um projeto que referencia vários jars no seu classpath (permitindo o uso de APIs e frameworks externos). ...

Quer ler esse conteúdo completo? Tenha acesso completo