Você está na página 1de 7

LinguagemdeProgramao

Java
ClasseCanvas AclasseCanvaspermiteodesenhodentrodeumajanela(ClasseFrameouJFrame). Noexemploaseguirtemosumexemplodecomoinserirumobjetoherdadodaclasse Canvaspara,emseguida,preencherofundodajanelanacorazul.Aprimeiraclasseir criarajanela: public class ExemploCanvas extends JFrame { public ExemploCanvas() { this.setTitle("Primitivas Grficas"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(300, 300); this.add(new Desenho()); this.setVisible(true); } public static void main(String[] args) { ExemploCanvas janela = new ExemploCanvas(); } } Asegundaclassedoprojetoserresponsvelpelosdesenhos: import import import import java.awt.Canvas; java.awt.Color; java.awt.Dimension; java.awt.Graphics;

public class Desenho extends Canvas{ public void paint (Graphics g) { Dimension d = this.getSize(); g.setColor(Color.BLUE); //System.out.println(d.width + ", " + d.height); g.fillRect(0, 0, d.width, d.height); } }

Linguagem de Programao Java

1/7

Cludio Lus Vieira Oliveira

Nafiguraabaixopodemosobservaroresultadodaexecuodaaplicao:

Classe Color A classe Color responsvel pela exibio de cores nos objetos da linguagem Java. Ns podemos trabalhar com objetos tipo Color j definidos, por exemplo Color.orange, ou criar novas cores a partir do construtor do objeto. Sintaxe: Color estilo = new Color( compVermelho, compVerde, compAzul); contextoGrafico.setColor(estilo); onde: estilo - objeto Color criado; compVermelho - quantidade do componente vermelho utilizado na definio; compVerde - quantidade do componente verde utilizado na definio; compAzul - quantidade do componente azul utilizado na definio. importante: Os trs componentes utilizados na criao de um novo valor devem ter valores especificados entre 0 e 255. Primitivas para Desenho A classe Canvas trabalha com primitivas grficas na criao de desenhos ou mesmo efeitos visuais. A primeira primitiva que abordaremos ser o mtodo drawLine que

Linguagem de Programao Java

2/7

Cludio Lus Vieira Oliveira

desenha uma linha, no contexto grfico, nas coordenadas que especificamos como parmetro. Vejamos este pequeno exemplo: toda primitiva grfica deve ser executada dentro do mtodo paint; utilizamos o mtodo setColor para determinar e, em seguida, chamamos o mtodo drawLine com as coordenadas desejadas. public void paint (Graphics g) { g.setColor(Color.red); g.drawLine(10, 10, 150, 150); }

Sintaxe: contextoGrafico.drawLine(coordXi, coordYi, coordXf, coordYf); onde: coordXi - ponto inicial da reta no eixo X; coordYi - ponto inicial da reta no eixo Y; coordXf - ponto final da reta no eixo X; coordYf - ponto final da reta no eixo Y. O desenho de um retngulo, como todas as outras primitivas grficas, segue os mesmos conceitos apresentados no exemplo anterior. Apenas iremos introduzir dois conceitos novos: um para a criao de uma cor que no faa parte do objeto Color; e mostraremos tambm como preencher o retngulo com uma determinada cor. public void paint (Graphics g) { g.drawRect(0, 0, 200, 200); Color lilas = new Color(255, 0, 255); g.setColor(lilas); g.fillRect(0, 0, 200, 200); g.drawRect(50, 50, 100, 100); Color amarelo = new Color(255, 255, 0);

Linguagem de Programao Java

3/7

Cludio Lus Vieira Oliveira

g.setColor(amarelo); g.fillRect(50, 50, 100, 100); }

Sintaxe: contextoGrafico.drawRect(coordX, coordY, Comprimento, Altura); contextoGrafico.fillRect(coordX, coordY, Comprimento, Altura); onde: coordX - ponto inicial do retngulo no eixo X; coordY - ponto inicial do retngulo no eixo Y; Comprimento - comprimento do retngulo (eixo X); Altura - altura do retngulo (eixo Y). O desenho de polgonos necessita da definio da quantidade de pontos e de dois vetores, um ir conter as coordenadas do eixo x e o outro do eixo y. No esquea de fechar o polgono se desejar preench-lo com uma cor. O exemplo mostra o desenho de um tringulo, observe que quatro pontos foram especificados exatamente para poder fech-lo. public void paint (Graphics g) { g.drawRect(0, 0, 200, 200); Color verde = new Color(0, 255, 0); g.setColor(verde); g.fillRect(0, 0, 200, 200); int coordX[] = {50, 150, 100, 50}; int coordY[] = {150, 150, 50, 150}; Polygon triangulo = new Polygon(coordX, coordY, 4); g.drawPolygon(triangulo); Color azul = new Color(0, 0, 255);

Linguagem de Programao Java

4/7

Cludio Lus Vieira Oliveira

g.setColor(azul); g.fillPolygon(triangulo); }

Sintaxe: contextoGrafico.drawPolygon(coordX, coordY, numPontos); contextoGrafico.fillPolygon(coordX, coordY, numPontos); onde: coordX - vetor com os pontos do eixo X; coordY - vetor com os pontos do eixo Y; numPontos - nmero de pontos do polgono. O desenho de crculos e elipses possui uma particularidade na passagem dos parmetros. Devemos informar as coordenadas do retngulo que a circunscreve. Os mtodos utilizados so drawOval e fillOval. Vamos aproveitar este mesmo mdulo e apresentar os conceitos necessrios para o desenho de arcos (semi-crculos) atravs dos mtodos drawArc e fillArc. Estes mtodos trazem como parmetros, alm das coordenadas que retngulo ir circunscrever o arco, os ngulos de incio e fim especificados em sentido anti-horrio. public void paint (Graphics g) { g.drawOval(0, 0, 200, 200); Color amarelo = new Color(255, 255, 0); g.setColor(amarelo); g.fillOval(0, 0, 200, 200); Color preto = new Color(0, 0, 0); g.setColor(preto); g.fillOval(35, 35, 30, 30); g.fillOval(135, 35, 30, 30);

Linguagem de Programao Java

5/7

Cludio Lus Vieira Oliveira

Color vermelho = new Color(255, 0, 0); g.setColor(vermelho); g.fillOval(85, 85, 30, 30); g.fillArc(50, 75, 100, 100, 180, 180); }

Sintaxe: contextoGrafico.drawOval(coordX, coordY, Comprimento, Altura); contextoGrafico.fillOval(coordX, coordY, Comprimento, Altura); contextoGrafico.drawArc(coordX, coordY, Comprimento, Altura, angInicio, angFim); contextoGrafico.fillArc(coordX, coordY, Comprimento, angInicio, angFim); onde: coordX - ponto inicial do retngulo, que a circunscreve, no eixo X; coordY - ponto inicial do retngulo, que a circunscreve, no eixo Y; Comprimento - comprimento do retngulo que a circunscreve; Altura - altura do retngulo que a circunscreve; angInicio - ngulo de incio; angFim - ngulo final. Desenho de Caracteres A linguagem Java oferece a classe Font, da qual podemos criar um objeto que permite manipular a exibio de texto dentro de um contexto grfico. O primeiro mtodo que estudaremos o construtor do objeto, nele especificamos o nome da fonte, o tipo da fonte e o tamanho. Por exemplo: public void paint (Graphics g)

Linguagem de Programao Java

6/7

Cludio Lus Vieira Oliveira

{ g.drawRect(0, 0, 200, 200); Color azul = new Color(0, 0, 255); g.setColor(azul); g.fillRect(0, 0, 200, 200); Color branco = new Color(255, 255, 255); g.setColor(branco); Font estiloTexto = new Font("Arial", Font.BOLD, 28); g.setFont(estiloTexto); g.drawString("OL MUNDO !", 5, 100); }

O mtodo drawString permite posicionar e desenhar o texto, dentro do contexto grfico, com o estilo especificado no mtodo construtor. Sintaxe: Font estilo = new Font( nomeFonte, tipoFonte, tamanhoFonte); contextoGrafico.setFont(estilo); contextoGrafico.drawString(texto, coordX, coordY); onde: estilo - objeto Font criado; nomeFonte - nome da fonte de letra desejada; tipoFonte - tipo da fonte: negrito (Font.BOLD), itlico (Font.ITALIC), normal (Font.PLAIN); tamanhoFonte - tamanho da fonte; texto - texto que dever ser desenhado; coordX - ponto inicial no eixo X; coordY - ponto inicial no eixo Y.

Linguagem de Programao Java

7/7

Cludio Lus Vieira Oliveira