Lienzo.java

Categorías: CategoryJava | CategoryProgramacion

import java.awt.Canvas;
import java.awt.Graphics;
import java.awt.Image;
import java.util.ArrayList;

/**
 * @author lina maria bermudez
 * @author mario nicolas arcila
 * */
/** Lienzo es la agregacion de objetos
 * graficos que se dibujan

 */
public class Lienzo extends Canvas {

    /**Lista de objetos graficos */
    private ArrayList<ObjetoGrafico> objetos;
    private Image imagen;
    private Graphics g2;

    /** constructora de lienzo inicializa la lista de objetos gragficos*/
    public Lienzo() {
        objetos = new ArrayList<ObjetoGrafico>();

    }

    /** Dibujar los graficos
     * @param g es la clase base para todo contexto grafico 
     */
    @Override
    public void paint(Graphics g) {
        update(g);
    }

    @Override
    public void update(Graphics g) {
        if (g2 == null) {
            imagen = createImage(getWidth(), getHeight());
            g2 = imagen.getGraphics();
        }
        g2.clearRect(0, 0, getWidth(), getHeight());

        /** este for es para pintar todos los objetos */
        for (ObjetoGrafico objeto : objetos) {
            objeto.paint(g2);
        }

        g.drawImage(imagen, 0, 0, this);
    }

    /** Sincroniza objeto grafico con el linezo
     * @param  o es la que trae a objeto grafico
     */
    synchronized public void add(ObjetoGrafico o) {


        objetos.add(o);

    }
}

Java/Programas/SaveTheEarth/Lienzo.java (last edited 2010-10-28 11:33:07 by Nicolas Arcila)