View Javadoc

1   package paolomind.multitalk.graphics;
2   
3   import java.awt.event.MouseEvent;
4   import java.awt.event.MouseListener;
5   
6   /**
7    * Componente AWT che delega il metodo paint ad un PaintDelegator.<br/>
8    * Questo componente contiene inoltre un MouseListner,
9    * viene implementato il solo metodo mouseEntered, perch&egrave;
10   * il panello ottenga il focus appena il mouse entra nella sua area.
11   *
12   * @author paolo
13   */
14  public class PainterComponent extends java.awt.Component {
15  
16    /** */
17    private static final long serialVersionUID = -1616376567654634480L;
18  
19    /** */
20    private transient PaintDelegator painter;
21  
22    /**
23     * costruttore, viene inizializzato il metodo mouseEntered ed il focus.
24     */
25    public PainterComponent() {
26      super();
27      setFocusable(true);
28      addMouseListener(new MouseListener() {
29  
30        public void mouseEntered(final MouseEvent e) {
31          requestFocusInWindow();
32        }
33  
34        public void mouseExited(final MouseEvent e) { }
35        public void mouseClicked(final MouseEvent e) { }
36        public void mousePressed(final MouseEvent e) { }
37        public void mouseReleased(final MouseEvent e) { }
38  
39      });
40    }
41  
42    /**
43     * Il metodo che disegna il componente grafico.<br/>
44     * Il metodo &egrave; sovrascritto perch&egrave;
45     * deleghi tale compito al PaintDelegator associato.
46     * @param g the graphics context to use for painting
47     * @see java.awt.Component#paint(java.awt.Graphics)
48     */
49    public final void paint(final java.awt.Graphics g) {
50      super.paint(g);
51      if (painter != null) {
52        painter.paint(g);
53      }
54    }
55  
56    /**
57     * setta il paintDelegator,
58     * che si occupa di disegnare la grafica del componente.
59     * @param ppainter il paintDelegator
60     */
61    public final void setPainter(final PaintDelegator ppainter) {
62      this.painter = ppainter;
63    }
64  }