// <applet code="QuadratoFluttuante.class" height = 300 width = 500>
// </applet>

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

public class QuadratoFluttuante extends JApplet {

    private Rectangle rettangolo;
    private static final int LATO = 100;
    private int posX;
    private int posY;

    public void init() {
	rettangolo = new Rectangle(30, 30, LATO, LATO);

	Container cont = getContentPane();
	Disegno dis = new Disegno();
	cont.add(dis);
	addMouseListener(dis);
	addMouseMotionListener(dis);
    }

    class Disegno extends JPanel implements MouseListener, 
					    MouseMotionListener {
	private boolean puoiMuovereRettangolo = false;

	public void paintComponent(Graphics g) {
	    super.paintComponent(g);
	    Graphics2D g2 = (Graphics2D)g;
	    g2.setColor(new Color(100, 180, 0));
	    g2.fill(rettangolo);
	}

	public void mouseEntered(MouseEvent evt) {

	}
	public void mouseExited(MouseEvent evt) {

	}
	public void mousePressed(MouseEvent evt) {
	    posX = evt.getX();
	    posY = evt.getY();
	    if (rettangolo.contains(posX, posY))
		puoiMuovereRettangolo = true;
	    else
		puoiMuovereRettangolo = false;
	}

	public void mouseReleased(MouseEvent evt) {
	}
	public void mouseClicked(MouseEvent evt) {
	}
	public void mouseMoved(MouseEvent evt) {

	}
	public void mouseDragged(MouseEvent evt) {
	    if (puoiMuovereRettangolo) {
		int x = evt.getX();
		int y = evt.getY();
		rettangolo.translate(x - posX, y - posY);
		posX = x; 
		posY = y;
		repaint();
	    }
	}
    } // fine classe interna Disegno
} // fine classe QuadratoFluttuante
