1 package paolomind.multitalk.graphics;
2
3 import java.awt.Dimension;
4 import java.awt.Graphics;
5 import java.awt.image.ImageObserver;
6
7 /**
8 * classe di oggetti che conservando una immagine in memoria
9 * possono disegnarla sull' graphics fornitogli.
10 *
11 * @author paolo
12 */
13 public class PaintImage extends java.awt.image.BufferedImage implements
14 PaintDelegator {
15
16 /** */
17 private ImageObserver observer;
18
19 /**
20 * costruisce e inizializza l'immagine di buffer con sfondo bianco RGB.
21 *
22 * @param width
23 * larghezza del panello
24 * @param height
25 * altezza del pannello
26 * @param pobserver
27 * l'observer per disegnare l'immagine
28 */
29 public PaintImage(final int width, final int height,
30 final ImageObserver pobserver) {
31 super(width, height, java.awt.image.BufferedImage.TYPE_INT_RGB);
32 Graphics g = this.getGraphics();
33 g.setColor(java.awt.Color.white);
34 g.fillRect(0, 0, width, height);
35 this.observer = pobserver;
36 }
37
38 /**
39 * costruisce e inizializza l'immagine di buffer con sfondo bianco RGB.
40 *
41 * @param d dimensioni dell'immagine
42 * @param pobserver l'observer per disegnare l'immagine
43 */
44 public PaintImage(final Dimension d, final ImageObserver pobserver) {
45 this(d.width, d.height, pobserver);
46 }
47
48 /**
49 * disegna l'immagine se l'observer è settatto.
50 * Viene chiamato dall'oggetto a cui è associato come PaintDelegator.
51 * @param g reference per la grafica
52 */
53 public final void paint(final Graphics g) {
54 if (observer != null) {
55 g.drawImage(this, 0, 0, this.observer);
56 }
57 }
58
59 /**
60 * ritorna l'observer associato.
61 * @return l'observer
62 */
63 protected final ImageObserver getObserver() {
64 return observer;
65 }
66 }