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);
}
}
