Artigo do tipo Tutorial
Desenhando com Swing
Este artigo apresenta uma introdução às ferramentas da API Swing, utilizada para a implementação da interface gráfica com o usuário. Os conceitos básicos do seu funcionamento e também da sua utilização serão vistos a partir do desenvolvimento de uma aplicação desktop com o objetivo de mostrar o gráfico de uma equação.

Em que situação o tema é útil
Os desenvolvedores que desejam aprender como utilizar as ferramentas do Swing para criar desenhos a partir de equações ou outras fontes de dados encontrarão neste artigo explicações e exemplos para atingir os seus objetivos.

Uma maneira simples de aprender os conceitos de uma linguagem de programação ou uma API específica é desenvolver ou acompanhar o desenvolvimento de um problema real. Uma situação bastante comum no desenvolvimento de aplicações é a necessidade de apresentar a representação gráfica de um conjunto de dados, e para entender como criar gráficos e o processo como isso é feito em Java utilizando a API Swing, escolheu-se um sistema de cálculo numérico, para o qual devem ser apresentados os gráficos de equações polinomiais. O gráfico de uma equação pode ser entendido como a representação dos valores numéricos de uma tabela, pois em uma equação, dado um valor de entrada, temos um valor de resultado.

A técnica utilizada no processo de desenho de uma equação polinomial pode ser aproveitada em muitas situações, como a representação das informações de uma base de dados, mostrar os resultados de uma série de cálculos de uma forma mais amigável, ou mesmo criar uma animação com a representação das ondas sonoras de uma música.

Para criar um gráfico a partir de um conjunto de dados em uma janela de aplicação Java, no entanto, é preciso entender o funcionamento e a estrutura da API Swing, isto é, conhecer as classes básicas que são utilizadas no processo de desenho em aplicações desktop. Uma explicação sucinta dos objetivos e funcionamento destas classes, e também dos métodos utilizados para se desenhar um gráfico de linha são fornecidos ao longo deste texto, juntamente com a explicação de como gerar o gráfico de um polinômio.

Como em toda aplicação, além de dominar a técnica e a API, é necessário também entender o domínio do problema e compreender a solução, para que a mesma possa ser integrada no sistema em desenvolvimento. Deste modo, no contexto deste artigo, faz-se necessário entender o processo de cálculo de um polinômio, cujos resultados determinam os dados, neste caso, coordenadas que serão utilizadas para a criação de sua representação gráfica. Vale salientar que para gerar o gráfico de uma equação também é importante que se compreenda a diferença e a conversão entre espaços de representação numérica, pois os cálculos efetuados na avaliação de um polinômio são realizados com números em ponto flutuante (float), e o desenho de seu gráfico correspondente é feito utilizando números inteiros (int).

Surgimento do Swing

O Swing é a API padrão para o desenvolvimento da interface com o usuário (GUI – Graphical User Interface) de aplicações desktop. Esta API é codificada em Java, sem acessar os recursos de interface nativos do Sistema Operacional no qual a JVM está sendo executada, como é realizado no AWT (Abstract Window Toolkit). Sua primeira versão foi lançada em 1996 pela Netscape com o nome de IFC (Internet Function Classes). Mais tarde, a Netscape e a Sun uniram esforços e a IFC foi integrada a outros componentes e passou a ser chamada de JFC (Java Foundation Classes). As duas empresas continuaram o aprimoramento dos serviços da biblioteca que enfim foi renomeada para Swing e passou a fazer parte da distribuição Java SE (Java Standard Edition) a partir da versão 1.2.

Como o desenvolvimento do Swing é todo feito em Java, a API é independente de plataforma. O projeto de suas classes segue os relacionamentos sugeridos no padrão MVC (Model–View–Controller), e a codificação da API não incorpora as questões de segurança de acesso a dados para aplicações concorrentes, ou seja, não existe garantia de funcionamento correto ao se utilizar mais de uma linha de execução (threads) com objetos baseados nas classes definidas no Swing. Quando a aplicação é projetada para utilizar mais de uma linha de execução (threads), o programador deve se preocupar em garantir a segurança dos dados, o que não será abordado neste artigo.

O padrão MVC separa a aplicação em camadas, sendo uma para a visualização dos dados chamada de View, uma para a representação dos dados, chamada de Model, e uma terceira camada chamada de Controller, que faz a ligação entre as duas primeiras. O conceito deste padrão é tornar a representação visual independente dos dados e de como estes estão organizados. Para que esta independência seja possível, as camadas de visualização e de modelo de dados precisam de uma ligação externa, que realize a conexão entre as duas, escondendo suas particularidades.

Devido ao uso do padrão MVC, a maioria dos componentes Swing, que fazem parte da camada de visualização, possuem modelos associados, ou seja, classes que guardam e manipulam os dados a serem exibidos pelo componente. Estes modelos são especificados como ...

Quer ler esse conteúdo completo? Tenha acesso completo