Croci e cerchi

Vediamo ora un altro esempio: vogliamo sempre disegnare delle figure geometriche nel punto dove viene premuto il pulsante del mouse, soltanto che questa volta la figura deve essere una croce oppure un cerchio. In particolare, se il pulsante del mouse viene premuto in una posizione in cui x è minore o uguale a 200, si deve disegnare una croce, mentre invece si disegna un cerchio se x è maggiore di 200.

Concettualmente, questo esercizio non presenta nessuna difficoltà: si tratta sempre di fare dei disegni ogni volta ogni volta che il pulsante del mouse viene premuto. Quindi, occorre semplicemente mettere delle istruzioni nel blocco mouseDown in modo che venga fatto il disegno appropriato. Questa volta la cosa da disegnare dipende dal valore della coordinata x, per cui la procedura mouseDown contiene una istruzione condizionale, in cui la condizione è x<=200. Se questa condizione è verificata si disegna la croce, altrimenti si disegna il cerchio.

Il programma completo CrociCerchi.java è riportato qui sotto.

/*
  Disegna croci e cerchi
*/

import java.awt.*;

public class CrociCerchi extends java.applet.Applet {
  public boolean mouseDown(Event e, int x, int y) {
    Graphics g=getGraphics();

    if( x<=200 ) {
      g.drawLine(x,y-5,x,y+5);
      g.drawLine(x-5,y,x+5,y);
    }
    else {
      g.drawOval(x-5,y-5,10,10);
    }

    return true;
  }
}

In questo programma si può osservare come le variabili x e y sono variabili come tutte le altre. L'unica cosa che le differenzia dalle variabili definite localmente è che il loro valore iniziale rappresenta le coordinate del punto in cui si è premuto il pulsante. Per il resto, si possono usare come qualsiasi altra variabile intera, per cui per esempio ci si può fare un test come x<=200.