Lienzo.java
Categorías: CategoryJava | CategoryProgramacion |
1 package savetheearthsk;
2
3 import java.awt.Button;
4 import java.awt.Canvas;
5 import java.awt.Graphics;
6 import java.awt.Image;
7 import java.util.ArrayList;
8
9 /**
10 * Lienzo es la agregacion de objetos graficos que se dibujan
11 * @author Luisa Fernanda Rueda Herrera
12 * @author George Sebastian Parra Macias
13 */
14 public class Lienzo extends Canvas {
15
16 /**
17 * Lista de objetos graficos
18 */
19 private ArrayList<ObjetoGrafico> objetos;
20 //private ObjetoGrafico[] objeto;
21 //private int numObjetos;
22 private Image imagen;
23 private Graphics g2;
24
25 /**
26 * constructora de lienzo inicializa la lista de objetos gragficos
27 */
28 public Lienzo() {
29 objetos = new ArrayList<ObjetoGrafico>();
30
31 }
32
33 /** Dibujar los graficos
34 * @param g es la clase base para todo contexto grafico
35 */
36 @Override
37 public void paint(Graphics g) {
38 update(g);
39 }
40
41 @Override
42 public void update(Graphics g) {
43 if (g2 == null) {
44 imagen = createImage(getWidth(), getHeight());
45 g2 = imagen.getGraphics();
46 }
47 g2.clearRect(0, 0, getWidth(), getHeight());
48 /**
49 * este for es para pintar todos los objetos
50 */
51 for (ObjetoGrafico objeto : objetos) {
52 objeto.paint(g2);
53 }
54
55 g.drawImage(imagen, 0, 0, this);
56 }
57 /** Sincroniza objeto grafico con el linezo
58 * @param o es la que trae a objeto grafico
59 */
60 synchronized public void add(ObjetoGrafico o) {
61
62 objetos.add(o);
63
64 /* objeto[numObjetos]=O;
65 numObjetos++;
66 */
67 }
68 }
69
