La funzione mouseDown viene usata per memorizzare il punto iniziale della linea. La funzione mouseUp può disegnare la linea usando la posizione in cui il mouse è stato premuto e quella in cui è stato rilasciato. Dal momento che la posizione iniziale viene memorizzata dalla funzione mouseDown e poi usata dalla funzione mouseUp, deve essere rappresentata usando variabili globali.
Usiamo quindi due variabili globali xi e yi per indicare la posizione in cui il pulsante è stato premuto. La funzione mouseDown si limita a memorizzare le coordinate in cui il pulsante è stato premuto (che è memorizzato nei suoi argomenti x e y) in queste variabili. La funzione mouseUp invece disegna la linea fra il punto iniziale (che è memorizzato in xi e yi) e il punto in cui il pulsante è stato sollevato, che è rappresentato dai suoi argomenti x e y. Il programma completo UpDown.java è riportato qui sotto.
/*
Disegna linee fra i punti di pressione e
rilasciamento del pulsante.
*/
import java.awt.*;
public class UpDown extends java.applet.Applet {
/* punto iniziale della linea */
int xi, yi;
/* memorizza il punto iniziale della linea */
public boolean mouseDown(Event e, int x, int y) {
xi=x;
yi=y;
return true;
}
/* disegna la linea fra il punto iniziale e quello corrente */
public boolean mouseUp(Event e, int x, int y) {
Graphics g=getGraphics();
g.drawLine(xi,yi,x,y);
return true;
}
}
Naturalmente, le linee disegnate vengono cancellate ogni
volta che la finestra viene coperta o ridotta a icona. Per
rendere le linee disegnate permanenti, occorre che siano
disegnate anche dalla funzione paint, per cui
è necessario usare quattro vettori per memorizzare
le coordinate dei punti iniziali e finali di ogni linea.