Effetti speciali e sviluppo giochi in Java(TM) -Il metodo run()
di Anibal Wainstein (traduzione di Hanami Solutions)
3.0.2 Il metodo run()
In contrasto coi metodi start() e stop(), il metodo run()
sarà sempre differente da applet a applet. Questi
metodi sono sempre chiamati dai thread che vi siete creati.
Questo significa che avete un thread che funziona con gli altri
metodi delle applets (il thread principale) e un thread che
si occupa del metodo run() (il vostro thread che inizializzate nel
metodo start() ). "Trattenendo" il thread nel metodo
run() con un ciclo, potete sfruttarlo per fargli fare del lavoro
che non blocchi la JVM:
public void run()
{
while (true)
{
}
}
Nell'esempio qua sopra stiamo trattenendo il thread entro il ciclo infinito
(o finché non viene invocato il metodo stop() della applet). Il
problema con la applet che abbiamo creato nel capitolo 2.0.4,
era che venisse sovrascritta da altri messaggi di status da parte
del browser. Qui i threads ci possono essere d'aiuto, perché
riescono ad aggiornare costantemente un messaggio nella finestra di
status, e così facendo, sovrascrivono altri messaggi da parte
del browser. Riscriviamo la applet: import java.applet.*; import java.awt.*;
public class threadtest extends Applet implements Runnable {
public Thread animationthread = null;
public void start()
{
if (animationthread == null)
{
animationthread = new Thread(this,"animationthread");
animationthread.start();
}
}
public void stop()
{
if ((animationthread != null) && animationthread.isAlive())
animationthread.stop();
animationthread = null;
}
public void run()
{
while (true)
{
showStatus("Ciao Italia!");
}
}
}
Compilate la applet ed eseguitela. Potete anche clickare
qua per vederla. Noterete che il messaggio "Ciao Italia!" viene mostrato
nella finestra di status del vostro browser.
Pagina seguente >>
|
 |  |
|