pip4.gif (2913 bytes)

Commento del codice di HelloWorldtasto

Il compilatore ignora tutto quello che è compreso tra /* e */   ; nello stesso modo ignora tutto quello che, su una stessa riga, viene dopo //   ; questo fa si che è possibile inserire dei commenti nel codice; questo rende il codice più facile da leggere. Nel seguito, siccome i vari codici (molto semplici) saranno comunque dettagliattamente commentati, ho omesso i commenti all'interno del codice, ma è buona norma inserirli quando si scrive.

Nelle prime tre righe si importano un pò di pacchetti. Osservare la seconda riga: java.awt.event.*; questo pacchetto permette di gestire gli eventi.

Nella dichiarazione di classe dopo il solito extends Applet, troviamo implements ActionListener ("ascoltatore di eventi"), questo ci servirà ad aggiungere la capacità a un tasto (in questo caso) di "ascoltare" se viene premuto o meno (cf Eventi più avanti).

Nelle righe successive si definiscono le variabili tasto, colore, textFont.

Tasto è un oggetto Button con la scritta premi!

Osservare la definizione di colore: si possono specificare i colori con Color(x, y, z) dove x, y, z sono interi tra 0 e 255; x indica la quantità di rosso, y di verde e z di blu (cf Colori).

textFont è un oggetto della classe Font, un oggetto della classe Font si costruisce secondo lo schema Font(" ", Font.xxx, yy) dove tra le virgolette sta il nome della font (TimesRoman, Dialog, Helvetica, Courier sono le più usate), xxx definisce l'aspetto (PLAIN, BOLD, ITALIC, ecc...), finalmente yy è la grandezza (size). Se si vuole una font in bold e in italic, usare Font.BOLD+FontITALIC

Dopo inizia il metodo init() (racchiuso tra due parentesi grafe)

Come prima cosa si definisce il colore dello sfondo dell'applet:

setBackground(Color.black);

dopo si aggiunge tasto e nella riga tasto.addActionListener(this); si dice sostanzialmente al tasto di stare in ascolto.... Osservare l'impiego della parola this; in questo caso this indica questa applet.

Dopo c'è il metodo actionPerformed, è qui che si dice cosa deve succedere quando viene premuto il tasto.

Vogliamo cambiare colore in modo casuale. Abbiamo visto che Color può essere specificato come Color(x, y, z) dove x, y e z sono interi compresi tra 0 e 255 che indicano la quantità di rosso, di verde e di blu. Osservare che 255 è il numero massimo che si può esprimere con 8 bits e questo è il motivo per cui lo si trova spesso come limite superiore di un parametro.

Il metodo Math.random() genera un pseudo numero casuale compreso tra 0,0 e 1,0 (cioè tra 0 e 0,9999...). Abbiamo detto "pseudo casuale" perchè generare col computer un numero veramente casuale non è assolutamente banale (o è forse addirittura impossibile?); un sistema, per esempio, consiste nel prendere l'ora del computer, applicare una funzione matematica (esponenziale ecc...) "buona". Comunque sia, Java fornisce un metodo e noi lo usiamo!

Per essere nei limiti richiesti moltiplichiamo per 255: Math.random()*255, il risultato non è nel formato int, lo traduciamo in quel formato con (int)(Math.random()*255). Vedremo più avanti altri procedimenti di conversione.

Dopo avere cambiato colore, nella riga successiva, mettiamo l'istruzione repaint(): quando si modifica l'aspetto di un oggetto, l'effetto del codice potrebbe non avvenire subito, per essere sicuri che l'aspetto venga aggiorrnato si usa repaint().

Ogni volta che un oggetto sembra non rispondere a un'istruzione che lo modifica, provare ad usare repaint() alla fine del metodo.

A questo punto rimane da dire al programma di "stampare" (o meglio disegnare), per questo si chiama il metodo paint(). Al metodo paint viene passato come parametro un oggetto Graphics che abbiamo chiamato g; g fornisce il contesto grafico. Con g.setColor() si definisce il colore col quale dipingere (qui colore); con g.setFont() la font con la quale scrivere (qui textFont).

Finalmente con g.drawString("str", x, y) g chiama il metodo drawString() con parametro "str" per disegnare la stringa "str ", con la font e nel colore stabiliti; (x, y) indicano le coordinate del primo carattere della stringa; qui y misura la "baseline" del testo (cf Disegnare per informazioni sulle coordinate dello schermo).

avanti02.gif (9574 bytes)fleche_retour.gif (1377 bytes)