Nota
Gli esercizi marcati con (*) sono considerati più difficili degli altri.
Suggeriamo pertanto di affrontare la loro soluzione successivamente, per approfondire
le conoscenze.
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.
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" %
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?
Modificare l'applet disegnoApplet per permettere un numero qualsiasi di cerchi.
È possibile utilizzare la classe listaCoppie vista a lezione.
Scrivere un'applicazione disegnaCerchi che fa le stesse cose di disegnoApplet.
Modificare il programma precedente aggiungendo una casella di testo in cui l'utente può specificare il raggio dei cerchi.
Paolo Coppola