Interfaces gráficas com Eclipse WindowBuilder

Interfaces gráficas com Eclipse WindowBuilder
Ellen Pimentel
Ellen Pimentel

Compartilhe

Introdução

É possível criar interfaces de usuários de forma ágil e fácil em Java? Sim, com Java tudo é possível e existe um aliado para essa tarefa: o plug-in WindowBuilder para o Eclipse.

Atualmente a demanda para aplicações em desktop são menores se comparada com outras plataformas, mas isso não significa que deixarão de existir - vide as populares Discord, Slack e GitHub Desktop, desenvolvidas em outras linguagens. Em Java, os exemplos mais conhecidos são o Acrobat Reader, ThinkFree, e o Media Player.

Se você precisa criar um projeto pessoal, de estudo, ou até mesmo um sistema para uma empresa com construção de GUI (Graphical User Interface - Interface Gráfica do Usuário) utilizando Java, o WindowBuilder é uma ótima opção. Além das suas características, será apresentada parte de sua história, sua estrutura, forma de instalação e componentes.

Banner da promoção da black friday, com os dizeres: A Black Friday Alura está chegando. Faça parte da Lista VIP, receba o maior desconto do ano em primeira mão e garanta bônus exclusivos. Quero ser VIP

O Plug-in WindowBuilder

O Eclipse é uma IDE (Integrated Development Environment - Ambiente de Desenvolvimento Integrado) com estrutura extensível e permite adicionar novas funcionalidades e customizar as existentes através de plug-ins, como também removê-las. Eles são divididos em duas categorias: os plug-ins de UI, que contêm aspectos de uma interface de usuário ou que dependem de outros plug-ins, e os plug-ins do Core sem interface e independentes.

Com design WYSIWYG (What You See Is What You Get - O que você vê é o que você obtém) , o WindowBuilder é um plug-in que permite criar layouts inteligentes e fáceis através do drag-and-drop (arrastar e soltar) e ver o resultado em tempo real, e além disso permite adicionar manipuladores de eventos aos componentes e alterar várias propriedades de widgets através do editor de propriedades.

A ferramenta é bidirecional, isto é, é possível editar tanto o código-fonte como alterar os componentes na janela de design para realizar mudanças nos layouts. Ambas representações estão sincronizadas, qualquer atualização reflete na outra.

O aplicativo em desenvolvimento pode ser facilmente adaptado a vários idiomas e regiões sem alterações em sua estrutura interna, proporcionando recursos de forma automática. A ferramenta também oferece recursos de engenharia reversa, é possível usar o código existente como base inicial para um novo projeto.

Outro recurso importante está relacionado às alterações mínimas no código, a ferramenta utiliza um estilo de microedição que garante que a menor alteração possível seja feita na fonte, preservando todo o código e formatação do usuário.

Além disso, o WB (WindowBuilder) suporta herança visual, criando hierarquia dos componentes visuais em uma janela, e também oferece o Morphing Tools (Ferramentas de Transformação), convertendo um tipo de componente em outro.

História

Seus primórdios antecedem a criação da linguagem Java, e ao longo de sua história teve a participação de grandes empresas:

1991 – Lançamento original de Smalltalk/V por Cooper & Peters

A Smalltalk é uma linguagem criada pela Xerox e que popularizou o paradigma de Orientação à Objetos. O Smaltalk/V passou a oferecer um ambiente de janelas e foi desenvolvido pela empresa Digitalk.

1993 – Lançamento do VisualSmalltalk pela ObjectShare

O Smalltalk/V da Digitalk tornou-se o VisualSmalltalk Enterprise. Os cofundadores da Instantiations fundaram a ObjectShare Systems, um importante fornecedor de produtos Smalltalk e que também desenvolveu o WindowBuilder Pro.

1994 – Lançamento do VisualAge Smalltalk pela ObjectShare

A IBM usou as tecnologias Smalltalk incorporadas à empresa OTI (Object Technology International) como base do VisualAge.

1997 – Lançamento VisualAge Smalltalk por Instantiations

A Instantiations assumiu o suporte ao VisualAge Smalltalk da IBM.

2003 – Nova versão Eclipse/Java para SWT/RCP (SWT Designer)

2004 – Adicionado suporte Swing (Swing Designer)

2006 – Adicionado suporte ao Google Web Toolkit (GWT Designer)

2009 – Comunidade Eclipse premiada pelo melhor Complemento Comercial

2010 – Adquirido pelo Google e lançado gratuitamente para o mundo

Somente os produtos Java da Instantiations passaram a pertencer ao Google.

Mãos montando uma parede de tijolos, e em cada tilojo algo escrito, sendo: "Eclipse Foundation"; "Google"; "IBM"; "Instantiations"; "ObjectShare"; "Digitalk".

O WindowBuilder tornou-se um projeto e atualmente é mantido pela Eclipse Foundation, fundação sem fins lucrativos com membros que apoiam e desenvolvem software livre através do Eclipse Projects.

Estrutura e composição

Sua estrutura está baseada em bibliotecas populares como o Swing e SWT, é composta também pelo GWT, RCP e XWT UI frameworks. Além disso, o WindowBuilder constrói uma árvore de sintaxe abstrata (AST) possibilitando o acesso ao código-fonte e, através do GEF, realiza a exibição e gerenciamento do layout.

E essas siglas que o compõem e o tornam poderoso e flexível, o que significam? Para um melhor entendimento, segue a descrição de cada uma:

AST (Abstract Syntax Tree - Árvore de Sintaxe Abstrata) - O código desenvolvido é convertido em diversos tokens e após uma análise sintática, a lista de tokens transforma-se em uma árvore que representa a estrutura real do código. Cada nó da árvore indica uma construção que ocorre no código-fonte. Não existe um padrão AST, ele pode variar de acordo com a linguagem e ferramenta utilizadas.

GEF (Graphical Editing Framework - Estrutura de Edição Gráfica) - Oferece um kit de ferramentas para construir elementos de interface gráfica de usuário interativos e dinâmicos, com a capacidade de adicionar, mover, redimensionar e excluir os elementos gráficos que representam esses itens, facilitando o desenvolvimento de editores gráficos ricos.

GWT (Google Web Toolkit - Kit de ferramentas da Web do Google) - É um kit de ferramentas de código-aberto com estrutura de desenvolvimento de software em Java, e facilita a criação de aplicativos AJAX. Através do compilador do GWT é possível converter a aplicação Java em JavaScript e HTML.

RCP (Rich Client Platform - Plataforma de Cliente Rica) - É um programa de computador para a criação de aplicações Java construído sob a arquitetura do Eclipse. Permite às pessoas desenvolvedoras personalizar os componentes e tornar as aplicações portáteis e reutilizáveis. Assim, o conjunto mínimo de plug-ins necessários para construir um aplicativo é conhecido como Rich Client Platform.

SWING - Não é uma abreviação ou acrônimo, mas sim o nome de uma das bibliotecas para o desenvolvimento de aplicações desktop em Java. Foi criada para substituir a AWT (Abstract Window Toolkit - Kit de Ferramentas de Janela Abstrata), primeira biblioteca GUI da linguagem, já que seus componentes eram implementados de acordo com a estética de cada sistema operacional. A contribuição do Swing era rodar uma interface única em qualquer sistema operacional em que fosse executado.

SWT (Standard Widget Toolkit - Kit de Ferramentas de Widget Padrão)

É uma biblioteca criada pela IBM que oferece widgets de interface do usuário integrados ao sistema operacional, porém a API é independente do SO. Pode ser utilizada para apresentar uma interface nativa para os usuários.

XWT (XML Window Toolkit - Kit de Ferramentas de Janela XML)

Baseada na linguagem de marcação XML, trata-se de uma estrutura de UI declarativa poderosa e leve projetada para o Eclipse.

A versão WindowBuilder 4.0 passou a possibilitar que os componentes SWT e Swing sejam combinados empregando as principais APIs Java para a construção de janelas.

Instalação

A instalação é simples e rápida. O primeiro passo é acessar o menu Help dentro do editor e selecionar Eclipse MarketPlace:

Em seguida, abrirá uma janela com um campo de busca, basta digitar windowbuilder, clicar em Go, e será apresentada de início a versão mais recente. Para finalizar, clique em Install:

Selecione todas as opções e clique em Confirm:

A próxima janela será referente aos termos de uso, sendo necessário aceitá-los para finalizar a instalação:

Após completar o processo, o editor será reiniciado. Será essa a apresentação ao utilizar o plug-in:

Pantalla con la estructura de WindowBuilder, al lado izquierdo y en la parte superior están las herramientas, al lado derecho el espacio para la construcción del diseño.

Agora, se você baixar um projeto pronto feito através do WB e deseja realizar alterações, é possível fazer diretamente no código, mas se preferir pela interface gráfica, clique sobre a classe que deseja trabalhar com o botão direito do mouse e selecione OpenWith, WindowBuilder.

Dessa forma, será aberta a aba de Design para manipulação, acima da área do Console.

Componentes

Seus principais componentes da interface serão apresentados:

Design View (Visualização do Design) - é nesse campo que acompanhamos a construção e resultado da interface gráfica.

Source View (Visualização da Origem) - espaço para escrever o código e revisar o que foi gerado automaticamente.

Structure View (Visualização da Estrutura) - ela é composta pela Árvore de Componentes e o Painel de Propriedades.

Na Árvore de Componentes podemos ver a relação hierárquica entre eles. Além das propriedades, no Painel de Propriedades, apresentam-se os eventos dos componentes selecionados.

Palette (Paleta) - fornece o acesso aos componentes específicos do kit de ferramentas.

Toolbar (Barra de Ferramentas) - oferece acesso aos principais comandos utilizados.

Context Menu (Menu de Contexto) - como na Barra de Ferramentas, oferece acesso aos principais comandos utilizados, porém com recursos mais limitados.

Look and Feel

Trata-se de um termo do inglês, e o look que significa olhar, refere-se ao layout da aplicação. O feel, que significa sentir, está relacionado à experiência do usuário. O propósito dessa junção é ajudar a referenciar a identificação de uma marca e propor uma interface intuitiva, com menos carga de memorização.

O Look and Feel padrão do editor é o Metal, com a mesma apresentação visual em todas as plataformas. Para utilizar uma diferente, é necessário setar outro através do método UIManager.setLookAndFeel() com o nome especificado da subclasse apropriada de L&F como seu argumento.

Conclusão

As possibilidades de criar projetos utilizando Java são imensas, além de ser uma linguagem poderosa, conta com uma comunidade grande e engajada e também com diversas ferramentas de apoio.

Desenvolver com WindowBuilder além de ser simples, é divertido. Desde pequenas janelas de inputs, até sistemas de gerenciamento, ele possibilita a investigação e a prática da linguagem Java.

Ellen Pimentel
Ellen Pimentel

Ellen iniciou sua carreira em programação como Desenvolvedora Front-End e atualmente integra a equipe de Instrutores de Java na Alura Latam. Além da área de desenvolvimento, gosta de estudar sobre processos e negócios, tem Especialização em Gestão de Projetos e experiência em educação através de projetos educacionais em ciência e ensino de idioma.

Veja outros artigos sobre Programação