Esercitazione 13, 14 maggio 2002

Nota
Gli esercizi marcati con (*) sono considerati più difficili degli altri. Suggeriamo pertanto di affrontare la loro soluzione successivamente, per approfondire le conoscenze.

Esercizio 1

Considerate l'applet disegnoApplet vista a lezione.

/*<applet code="disegnoApplet.class" width="400" height="400"></applet>*/

import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class disegnoApplet extends Applet {
  private final int MAX_ELEM = 10;
  private final int R = 15;
  int[] x = new int[MAX_ELEM];
  int[] y = new int[MAX_ELEM];
  int n = 0;

  public void init() {
    this.addMouseListener(new aggiungiCerchio());
  }

  public void paint(Graphics abc) {
    for (int i = 0; i < n; i++)
      abc.drawOval(x[i]-this.R,y[i]-this.R,this.R*2,this.R*2);
  }

  void add(int x, int y) {
    if (this.n < this.MAX_ELEM) {
      this.x[n] = x;
      this.y[n] = y;
      this.n++;
    } 
  }
}

class aggiungiCerchio extends MouseAdapter  {
  public void mouseClicked(MouseEvent e) {
    disegnoApplet dA = (disegnoApplet)e.getSource();
    dA.add(e.getX(),e.getY());
    dA.repaint();
  }
}

Modificarla per far in modo che sia possibile passare come parametro il raggio del cerchio ed il numero massimo di elementi.

Esercizio 2

Una volta che sono stati posizionati MAX_ELEM cerchi non è più possibile aggiungerne altri. Modificare l'applet dell'esercizio precedente per far in modo che quando si è raggiunto il massimo numero di cerchi, si possa continuare a ad aggiungere cerchi levando quelli vecchi.

Utilizzare l'operazione aritmetica "modulo" %

Esercizio 3

Modificare l'applet dell'esercizio precedente per far in modo che la prima volta che si clicca viene disegnato un cerchio e tutte le altre volte questo cerchio viene spostato.

Serve ricompilare?

Esercizio 4(*)

Modificare l'applet disegnoApplet per permettere un numero qualsiasi di cerchi.

È possibile utilizzare la classe listaCoppie vista a lezione.

Esercizio 5

Scrivere un'applicazione disegnaCerchi che fa le stesse cose di disegnoApplet.

Esercizio 6(**)

Modificare il programma precedente aggiungendo una casella di testo in cui l'utente può specificare il raggio dei cerchi.


Valid HTML 4.01! Valid CSS! Paolo Coppola
Last modified: 2002/05/11