Ho scritto questo programma per disegnare a mano libera con il mouse:
codice:
import java.awt.*;
import java.awt.event.*;
public class Disegni2 extends Frame {
	CanvasUtente tela = new CanvasUtente();
	public Disegni2() {
		super ("Disegni a mano libera");
		setBounds (50, 50, 700, 450);
		
		setLayout (new BorderLayout());
		
		// Configurazione e inserimento del supporto di tracciatura
		tela.setBackground (Color.green);
		tela.setForeground (Color.red);
		add (tela, "Center");
		
		// Creazione del pannello di controllo
		Panel controlli = new Panel();
		controlli.setBackground (Color.blue);
		Button bClear = new Button ("Clear");
		bClear.addActionListener ( new ActionListener() {
			public void actionPerformed (ActionEvent e) {
				tela.repaint();
			}
		});
		controlli.add (bClear);
		add (controlli, "South");
		
		setVisible (true);
	}
}


class CanvasUtente extends Canvas {
	private int lastX, lastY;
	public CanvasUtente () {
		super();
		AscMsDrag ascDrag = new AscMsDrag ();
		addMouseMotionListener (ascDrag);
		AscMsClick ascClick = new AscMsClick ();
		addMouseListener (ascClick);
	}
	class AscMsClick extends MouseAdapter {
	
		MouseAdapter adpMsClick = (new MouseAdapter(){
			public void mousePressed (MouseEvent e) {
				lastX = e.getX();
				lastY = e.getY();	
			}
		});	
	
	}
	class AscMsDrag extends MouseMotionAdapter {
	
		MouseMotionAdapter adpMsDrag = (new MouseMotionAdapter() {
			public void mouseDragged (MouseEvent e) {
				int x = e.getX();
				int y = e.getY();
				Graphics g2 = getGraphics();
				g2.drawLine(lastX, lastY, x, y);
				lastX = x;
				lastY = y;
			}
		});
	}
}
non funziona!!!

perchè?

Grazie