Apresentação gráfica

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:

Tela com texto e retângulos

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:

Tela com texto e 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

Last modified: Tue Aug 7 17:31:21 EST 2001