A base para tudo que é desenhado na tela de uma aplicação
gráfica é o contexto gráfico, um objeto da classe
Graphics
. São
nesses objetos que linhas, retângulos, círculos,
strings, etc. são desenhados, compondo a apresentação
visual da aplicação gráfica.
Todo componente gráfico tem
associado a si um contexto gráfico e
alguns métodos chaves para manipulá-lo. A um objeto da classe
Component
pode-se aplicar os
métodos getGraphics(), que
permite obter uma referência para um objeto da classe
Graphics, paint(Graphics), que determina o que
é feito no contexto gráfico, e repaint(), que solicita
uma atualização no contexto gráfico.
Para determinar o conteúdo gráfico do contexto, os métodos da classe Graphics são utilizados. Esses métodos incluem facilidades para definição de cores, fontes e definição de figuras geométricas. O sistema de coordenadas para definir a posição do desenho no contexto tem origem no canto superior esquerdo da área gráfica, tomando valores inteiros para x e y representando quantidades de pixels na horizontal e na vertical, respectivamente.
A cor corrente para o contexto gráfico pode ser obtida e
definida pelos métodos getColor() e
setColor(), respectivamente. Esses métodos usam cores
representadas por objetos da classe
Color
, que oferece
constantes para usar cores pré-definidas, métodos para definir
cores especificando níveis RGB (red, green, blue) ou
HSB (hue, saturation, brightness) e métodos para
manipular as cores existentes.
Similarmente, a fonte usada para a apresentação de
strings no contexto pode ser obtida e definida através
de métodos getFont() e setFont(). Fontes são
representadas por objetos da classe
Font
.
Entre os diversos métodos usados para desenhar no contexto, há métodos para desenhar texto usando a fonte de texto e a cor corrente, drawString(); desenhar linhas retas, drawLine(); e desenhar diversas formas geométricas, tais como drawArc(), drawRect(), drawRoundRect(), draw3DRect(), drawPolygon(), drawOval() e suas correspondentes versões preenchidas, fillArc(), fillRect(), fillRoundRect(), fill3DRect(), fillPolygon(), fillOval().
Essa imagem mostra o resultado da execução de um código que apresenta um texto e desenha alguns retângulos em uma janela gráfica, ilustrando a utilização de alguns dos métodos aqui apresentados:
Este outro exemplo ilustra o uso de recursos disponibilizados, na plataforma Java2, através da classe java.awt.Graphics2D -- neste caso, o uso de linhas grossas para fazer o desenho dos retângulos:
Para obter uma referência para o contexto Graphics2D, basta fazer o downcast a partir da referência para o objeto Graphics.
© Ivan L. M. Ricarte
DCA/FEEC/UNICAMP