|
Es. 1 |
Fare un'applet in cui lo schermo sia diviso in 4 parti, ciascuna in un colore diverso. Nel mezzo del primo (in alto, a sinistra) quadrante comparirà la scritta: "Il mio nome è:"; nel mezzo dell'ultimo (in basso, a destra) quadrante comparirà la scritta "Nome", quest'ultima sarà in rilievo. La via più semplice per realizzare quest'applet è di dividere lo schermo in quattro e usando g.fillRect() di riempire ogni parte con un colore diverso. Supponiamo per esempio che l'applet sia 400 x 400, allora: g.setColor(Color.green); g.fillRect(0,0,200,200); g.setColor(Color.blue); g.fillRect(200,0,200,200); g.setColor(Color.red); g.fillRect(0,200,200,200); g.setcolor(Color.yellow); g.fillRect(200,200,200,200);fornisce quattro quadrati 200x200 colorati in verde, blu, rosso, giallo. Questa soluzione non è ideale! Infatti se un domani volete cambiare le dimensioi della vostra applet, dovrete riscriverla tutta! Per evitare questo inconveniente è preferibile usare delle coordinate relative piuttosto che assolute: //getSize().width ritorna un int uguale alla //larghezza dell'applet w = getSize().width; h = getSize().height;//come sopra, con l'altezza g.setColor(Color.green); g.fillRect(0,0,w/2,h/2); g.setColor(Color.blue); g.fillRect(w/2,0,w/2,h/2); g.setColor(Color.red); g.fillRect(0,h/2,w/2,h/2); g.setcolor(Color.yellow); g.fillRect(w/2,h/2,w/2,h/2);Rimane poi da fare le scritte; per scrivere in rilievo cf questo link. Per scaricare il file .java completo di una possibile soluzione. Osservazioni: Alcuni hanno provato una soluzione più complicata, usando quattro pannelli: public void init(){ setLayout(new GridLayout(2,2)); Panel p1 = new Panel(); p1.setBackground(Color.green); Panel p2 = new Panel(); p2.setBackground(Color.blue); //...ecc con p3, p4 add(p1); add(p2); add(p3); add(p4); } public void paint(Graphics g){ g.drawString("Il mio nome è:",0,h/4); g.drawString("Nome",w/2,3*h/4); }Non è una brutta idea e la scelta del GridLayout è azzecata, sfortunatamente non si vedono le scritte! Infatti il contesto grafico g è quello dell'applet e disegna sul panel dell'applet, dopodichè ricopriamo questo pannello (e le scritte) con i pannelli p1, ...,p4: le scritte non si vedono più. Per mettere in atto questa soluzione si può fare una classe myPanel che estende Panel e definire un metodo paint di myPanel. Vedremo qualcosa di simile in un prossimo esercizio. |
next content previous