/*
  Un applet che segue i movimenti del mouse e scrive di volta in volta le
  coordinate del punto in cui si trova il mouse quando e' dentro all'applet.
*/


import java.applet.Applet;
import java.awt.Color;
import java.awt.event.MouseMotionListener; 
import java.awt.event.MouseEvent;
import java.awt.Graphics; 

public class AppletMovimento extends Applet {

    private RicevitoreMovimenti ricevitore; 
    // stringhe che conterranno il messaggio scritto sull'applet:
    private String messaggio, coordinate; 

    public void init() {
	ricevitore = new RicevitoreMovimenti();  

	// installo il ricevitore che gestisce i movimenti del mouse.
	addMouseMotionListener(ricevitore);
	messaggio = "mouse in: ";
	coordinate = "non lo so";
	setBackground(Color.black);
	setForeground(Color.cyan);
    }

    public void paint(Graphics g) {
	g.drawString(messaggio + coordinate, 40, 100);
    }

    // classe interna:
    class RicevitoreMovimenti implements MouseMotionListener {

	public void mouseMoved(MouseEvent evt) {
	    // catturo le coordinate del punto in cui si trova 
	    // il mouse e le inserisco nella stringa "coordinate".
	    int x = evt.getX();
	    int y = evt.getY();
	    coordinate = " [" + x + ", " + y + "]";
	    repaint();
	}

	// questo metodo non fa nulla, ma deve essere definito
	// perche' la classe interna implementa l'interfaccia
	// MouseMotionListener:
	public void mouseDragged(MouseEvent evt) {}

    } // fine classe interna.

}

