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