//<applet code="AppletFrecce.class" height=225 width=225> </applet>

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class AppletFrecce extends JApplet {

    // coordinate del punto in cui si trova il mouse
    private int xPunto, yPunto;
    // il disegno dell'applet
    private Disegno dis;
    // un array di frecce
    private Freccia[][] fr;

    public void init() {
	// costruisco 8x8 frecce:
	fr = new Freccia[8][8];
	for (int i = 0; i < 8; i++) {
	    for (int j = 0; j < 8; j++) {
		fr[i][j] = new Freccia(32*i, 32*j);
	    }
	}
	// costruisco il disegno e lo metto in ascolto degli 
	// eventi del mouse.
	dis = new Disegno();
	dis.addMouseMotionListener(new MovimentiMouse());
	// inserisco il disegno nel contenitore dell'applet
	setContentPane(dis);
    }

    // classe che implementa MouseMotionListener per i movimenti
    // del mouse.
    private class MovimentiMouse implements MouseMotionListener {
	public void mouseDragged(MouseEvent e) {

	}
	public void mouseMoved(MouseEvent e) {
	    xPunto = e.getX();
	    yPunto = e.getY();
	    dis.repaint();
	}
    }

    // classe per definire il disegno
    private class Disegno extends JPanel {

	public void paintComponent(Graphics g) {
	    super.paintComponent(g);
	    // Un po'm di varinati per far piu' bella la grafica
	    Graphics2D g2 = (Graphics2D)g;
	    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                                  RenderingHints.VALUE_ANTIALIAS_ON);
	    g2.setStroke(new BasicStroke(1f));
	    // disegno le 8x8 frecce
	    for (int i = 0; i < 8; i++) {
		for (int j = 0; j < 8; j++) {
		    fr[i][j].assegnaPuntoArrivo(xPunto, yPunto);
		    int[] ptPart = fr[i][j].dammiPuntoPartenza();
		    int[] ptArr = fr[i][j].dammiPuntoFinale();
		    g2.drawLine(ptPart[0], ptPart[1], ptArr[0], ptArr[1]);
		}
	    }
	}
    }
}
