TA345/531 TP257 Informática Aplicada à Engenharia de Alimentos.


Aula 7 – Parte A: Apresentação Gráfica

 A base para tudo que é desenhado na tela de uma aplicação é o contexto gráfico, em Java, um objeto da classe Graphics, do pacote java.awt. São nesses objetos que linhas, retângulos, círculos e outros elementos 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-chave 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 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 linguagem Java contém um número grande de primitivas gráficas que possibilitam ao usuário criar gráficos facilmente e rapidamente. A seguir, uma pequena relação dos métodos mais úteis da classe Graphics:

 

dispose ( )

limpa contexto corrente do objeto.

 

clearRect (int x, int y, int width, int height)

limpa a área do retângulo especificado com a cor atual.

int x → coordenada x inicial

int y → coordenada y inicial

int width → largura

int height → altura

 

drawLine (int x1, int y1, int x2, int y2)

desenha uma linha.

int x1 → coordenada x inicial

int y1 → coordenada y inicial

int x2 → coordenada x final

int y2 → coordenada y final

 

drawRect (int x, int y, int width, int height)

desenha um retângulo.

int x → coordenada x inicial

int y → coordenada y inicial

int width → largura

int height → altura

 

drawRoundRect (int x, int y, int width, int height, int arcWidth, int arcHeight)

desenha um retângulo com as bordas arredondadas.

int x → coordenada x inicial

int y → coordenada y inicial

int width → largura

int height → altura

int arcWidth → diâmetro horizontal do arco nos 4 cantos

int arcHeight → diâmetro vertical do arco nos 4 cantos

 

drawOval (int, x, int y, int width, int height)

desenha um círculo

int x → coordenada x inicial

int y → coordenada y inicial

int width → largura

int height → altura

 

draw3DRect (int x, int y, int width, int height, boolean raised)

desenha um retângulo em 3 dimensões.

int x → coordenada x inicial

int y → coordenada y inicial

int width → largura

int height → altura

boolean raised → se True retângulo aparece aumentado, senão diminuído.

 

drawPolygon (int xPoints[ ], int yPoints[ ], int nPoints)

desenha um polígono. Qualquer polígono criado tem que conter um ponto que o fecha. Java não cria polígonos fechados automaticamente, então tenha sempre certeza que os pontos inicial e final são iguais.

int xPoints[ ] → array de coordenadas x

int yPoints[ ] → array de coordenadas y

int nPoints[ ] → número de pontos

 

drawString (String str, int x, int y)

desenha string com a fonte e tamanho correntes.

String str → string a ser desenhada

int x → coordenada x

int y → coordenada y

 

fillRect (int x, int y, int width, int height)

preenche um retângulo com a cor corrente.

int x → coordenada x inicial

int y → coordenada y inicial

int width → largura

int height → altura

 

fillRoundRect (int x, int y, int width, int height, int arcWidth, int arcHeight)

preenche um retângulo com bordas arredondadas com a cor corrente.

int x → coordenada x inicial

int y → coordenada y inicial

int width → largura

int height → altura

int arcWidth → diâmetro horizontal do arco nos 4 cantos

int arcHeight → diâmetro vertical do arco nos 4 cantos

 

fill3DRect (int x, int y, int width, int height, boolean raised)

preenche um retângulo 3D com a cor corrente.

int x → coordenada x inicial

int y → coordenada y inicial

int width → largura

int height → altura

boolean raised → se True retângulo aparece aumentado, senão diminuído.

 

fillOval (int x, int y, int width, int height)

preenche um círculo com a cor corrente.

int x → coordenada x inicial

int y → coordenada y inicial

int width → largura

int height → altura

 

fillPolygon (int xPoints[ ], int yPoints[ ], int nPoints)

preenche um polígono com a cor corrente.

int xPoints[ ] → array de coordenadas x

int yPoints[ ] → array de coordenadas y

int nPoints[ ] → número de pontos

 

Color getColor ( )

retorna a cor corrente.

 

setColor (Color c)

ajusta a cor corrente.

               Color c → nova cor corrente

 

Font  getFont ( )

retorna a fonte corrente.

 

setFont(Font f)

ajusta a fonte corrente.

Font f → nova fonte corrente

 

Desenhando um Retângulo

Agora, utilize o seguinte código e observe a criação de retângulos com e sem preenchimento.

{...
    g.drawRect(35,15,125,150);//desenha apenas o contorno do retângulo
    g.setColor (Color.yellow);//define a cor de Graphics
    g.fillRect(200,30,95,170);//desenha um retângulo com preenchimento
...}

Você pode obter algo como:

 

Exemplo - retângulo:

import java.applet.*;

import java.awt.*;

 

// <APPLET CODE = "retangulo.class" WIDTH=400 HEIGHT=400></APPLET>

 

public class retangulo extends Applet

    {

         public void init()

         {

         }

        

         public void paint (Graphics g)

         {

            int i;

            int sx = 10;

            int sy = 10;

 

            for (i = 9; i >= 0; i--)

            {

                g.fillRect(sx + (i*10), sy + (i*10), i*20, i*20);

                if (i == 0)      g.setColor(Color.black);

                else if (i == 1) g.setColor(Color.blue);

                else if (i == 2) g.setColor(Color.cyan);

                else if (i == 3) g.setColor(Color.yellow);

                else if (i == 4) g.setColor(Color.gray);

                else if (i == 5) g.setColor(Color.green);

                else if (i == 6) g.setColor(Color.magenta);

                else if (i == 7) g.setColor(Color.orange);

                else if (i == 8) g.setColor(Color.pink);

                else if (i == 9) g.setColor(Color.red);

 

            }

         }

    }

 

 

Desenhando Arcos, Círculos, e Ovais

Utilize os seguintes comandos:

{...
    g.drawOval(85,100,30,30);//oval vazio
    g.fillOval(40,40,120,150); //oval cheio
    g.drawArc(35,60,125,180,20,80);//desenha contorno de arco
    g.fillArc(60,130,80,40,180,180);//desenha arco com preenchimento
...}

Modifique os parâmetros e combine seus efeitos para fazer desenhos. Divirta-se! Que tal:

Exemplo - circulo:

import java.applet.*;

import java.awt.*;

 

// <APPLET CODE = "circulo.class" WIDTH=400 HEIGHT=400></APPLET>

public class circulo extends Applet

  

 {

         public void init()

         {

         }

 

         public void paint (Graphics g)

         {

             g.setColor(Color.black);

             g.fillOval(10,20,30,40);

             g.setColor(Color.blue);

             g.fillOval(60,30,200,40);

             g.setColor(Color.cyan);

             g.fillOval(120,90,170,120);

             g.setColor(Color.gray);

             g.fillOval(15,160,100,78);

             g.setColor(Color.green);

             g.fillOval(300,300,130,55);

             g.setColor(Color.lightGray);

             g.fillOval(240,0,40,300);

             g.setColor(Color.magenta);

             g.fillOval(100,200,150,200);

             g.setColor(Color.orange);

             g.fillOval(150,250,70,170);

             g.setColor(Color.pink);

             g.fillOval(10,50,200,90);

             g.setColor(Color.red);

             g.fillOval(320,70,80,180);

             g.setColor(Color.yellow);

             g.fillOval(200,160,300,40);

             g.setColor(Color.green);

             g.fillOval(10,250,250,50);

             g.setColor(Color.blue);

             g.fillOval(40,90,20,400);

             g.setColor(Color.magenta);

             g.fillOval(60,70,50,80);

         }

    }

 

 

Exemplo - desenho:

import java.applet.*;

import java.awt.*;

 

// <APPLET CODE = "desenho.class" WIDTH=400 HEIGHT=400></APPLET>

public class desenho extends Applet

    {

         Color marron;

         Color verde1, verde2, verde3;

 

         public void init()

         {

         }

 

         public void paint (Graphics g)

         {

             g.setColor(Color.blue);

             g.fillRect(0,0,400,400);

             g.setColor(Color.green);

             g.fillRect(0,300,400,100);

 

             // Desenhar arvore

             marron = new Color(149,123,103);

             g.setColor(marron);

             g.fillRect(50,200,40,100);

 

             verde1 = new Color(142,183,91);

             verde2 = new Color(42,168,64);

             verde3 = new Color(58,175,111);

 

             g.setColor(verde1);

             g.fillOval(45,120,50,50);

             g.setColor(verde3);

             g.fillOval(70,120,50,50);

             g.setColor(verde2);

             g.fillOval(20,120,50,50);

             g.setColor(verde3);

             g.fillOval(30,100,50,50);

             g.setColor(verde1);

             g.fillOval(30,160,50,50);

             g.setColor(verde2);

             g.fillOval(45,85,50,50);

             g.setColor(verde3);

             g.fillOval(60,100,50,50);

             g.setColor(verde2);

             g.fillOval(40,90,50,50);

             g.setColor(verde2);

             g.fillOval(20,140,50,50);

             g.setColor(verde1);

             g.fillOval(70,140,50,50);

             g.setColor(verde1);

             g.fillOval(50,90,50,50);

             g.setColor(verde3);

             g.fillOval(60,160,50,50);

 

             //desenhar casa

             g.setColor(Color.white);

             g.fillRect(200,200,100,100);

 

             int[] xPoints = {180, 250, 320};

             int[] yPoints = {200, 150, 200};

 

             g.setColor(Color.red);

             g.fillPolygon(xPoints,yPoints,3);

            

             g.setColor(Color.gray);

             g.fillRect(215,230,30,70);

             g.fillRect(258,235,30,30);

 

             g.setColor(Color.darkGray);

             g.drawRect(259,236,28,28);

             g.drawLine(273,236,273,264);

             g.drawRect(216,231,28,68);

             g.fillOval(238,267,4,4);

            

             g.setColor(Color.yellow);

             g.fillOval(300,50,60,60);

         }

    }

 

 

Muito mais em: procure por classe Graphics ( ) em: http://www.javasoft.com/doc/index.html


Volta para a pagina principal

 

Última atualização:  08/abril/2009