View Javadoc

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  }