Specialeffekter och spelutveckling
i Java(TM) - run() metoden
av Anibal Wainstein
3.0.2 run() metoden
Till skillnad från start() och stop() metoderna är
run() metoden nästan alltid annorlunda från applet
till applet. Den här metoden anropas alltid av din
självskapade tråd. Det betyder att du har en
tråd som jobbar med appletens andra metoder (Huvudtråden)
och en tråd som jobbar med run() metoden (din egen tråd).
Genom att "fånga" tråden i run() metoden med en
slinga så kan du utnyttja den att göra sysslor
som inte kommer att hänga datorn:
public void run()
{
while (true)
{
}
}
I exemplet ovan har vi nu fångat tråden inne i slingan
för alltid (eller tills appletens stop() metod körs).
Problemet med appleten som var i avsnitt 2.0.4
var att den blev överskriven av andra systemmeddelanden
i din webbtittare. Trådar kan hjälpa oss här,
då de klarar att skrivar ut ett meddelande kontinuerligt
på statusfönstret och därmed skriva över
systemmeddelanden. Vi skriver om appleten: import java.applet.*;
import java.awt.*;
public class tradtest extends Applet implements Runnable {
public Thread programtrad = null;
public void start()
{
if (programtrad == null)
{
programtrad = new Thread(this,"programtrad");
programtrad.start();
}
}
public void stop()
{
if ((programtrad != null) && programtrad.isAlive())
programtrad.stop();
programtrad = null;
}
public void run()
{
while (true)
{
showStatus("Tjena Sverige!");
}
}
}
Kompilera appleten och kör den eller klicka
här för att se den. Du kommer nu att märka
att meddelandet "Tjena Sverige!" står hela tiden i statusfönstret.
Nästa sida >>
|
| |
|