Immagine interattiva #1

L’immagine si sposta dove si clicca con il mouse

...
import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class a_duke_1 extends    Applet
                      implements MouseListener
{
  private Image immagine;
  private int   x,
                y;
  public void init()
  {
     x=getSize().width/2;
     y=getSize().height/2;
     immagine=getImage(getCodeBase(), "duke.jpg");
     this.addMouseListener(this);
  }
  public void paint(Graphics g)
  {
     g.drawImage(immagine, x, y, this);
  }
  private void aggiorna(int nx, int ny)
  {
     x=nx;
     y=ny;
     showStatus(x + ", " + y);
     repaint();
  }
  public void mousePressed (MouseEvent me) { }
  public void mouseClicked (MouseEvent me) { aggiorna(me.getX(), me.getY()); }
  public void mouseReleased(MouseEvent me) { }
  public void mouseEntered (MouseEvent me) { }
  public void mouseExited  (MouseEvent me) { }
}

Osserva

  1. repaint();
  2. private void mouseClicked(MouseEvent ...) { ... }
  3. showStatus(x+", "+y);

MouseAdapter al posto di MouseListener

...
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class a_duke_2 extends Applet
{
  private Image immagine;
  private int   x,
                y;
  public void init()
  {
     x=getSize().width/2;
     y=getSize().height/2;
     immagine=getImage(getCodeBase(), "duke.jpg");
     this.addMouseListener(new MA());
  }
  public void paint(Graphics g)
  {
     g.drawImage(immagine, x, y, this);
  }
  private void aggiorna(int nx, int ny)
  {
     x=nx;
     y=ny;
     showStatus(x + ", " + y);
     repaint();
  }
  class MA extends MouseAdapter
  {
     public void mouseClicked(MouseEvent me) { aggiorna(me.getX(), me.getY()); }
  }
}