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.