| Threads |
Soll in Java ein Prozess
zeitgesteuert ablaufen, brauchen wir einen Thread. Thread heisst Faden:
Etwas soll wie an einem Schnürchen ablaufen! Es ist auch möglich,
mehrere Threads gleichzeitig ablaufen zu lassen. Es gibt mehrere Arten
mit Threads zu arbeiten, wir wählen die einfachste:
- Erstellen Sie ein
neues Projekt z.B. namens TestThread vom Typ Basic Java Application.
- Ihre Klasse soll
"runnable" sein, sie muss also das Interface Runnable implementieren:
public class TestThreadFrame
extends Frame implements
Runnable {
- Deklarieren Sie
zwei Klassenvariablen (vor dem Konstruktor), den Thread, der dann ablaufen
soll und ein Label, damit Sie was hineinschreiben können
:
Thread thread;
Label label;
- Im Konstruktor
erzeugen Sie das Label und den Thread:
label = new Label();
add(label,BorderLayout.SOUTH);
thread = new Thread(this);
thread.start();
- Nach dem Konstruktor
deklarieren Sie die Methode run(), welche ausgeführt wird, nachdem
der Thread gestartet wurde. Die Methode schreibt einfach die Zahlen
1 bis 10 in das Label, aber nicht sofort, sondern alle 2000 ms eine.
Mit der Methode sleep() des Thread kann die Ausführung für
eine bestimmte Zeit angehalten werden. Es könnte ja sein, dass
jemand den Thread abbricht währenddem er schläft. Deshalb
muss die Methode in einem try - catch - Block sein:
public void run() {
int nr = 0;
for
(int i=0;i<10;i++) {
nr++;
label.setText(""+nr);
try
{
Thread.currentThread().sleep(2000);
}
catch
(InterruptedException e) {
System.out.println("Der
Thread wurde unterbrochen!");
}
}
}
So kann man z.B. eine Folge von Bildern als Film zeigen oder wie in
der folgdenden Spielerei etwas bewegen:
- Deklarieren Sie
in der Klasse:
int x = 200;
int y = 200;
- Ergänzen Sie
in der Methode run() in der for - Schlaufe:
x = x + (int)(Math.random()*20)-10;
y = y + (int)(Math.random()*20)-10;
repaint();
- Erstellen Sie
nach der Methode run() eine Methode paint():
public void paint(Graphics
g) {
g.drawRect(x,y,10,10);
}
Wie immer, sind jetzt
Ihre Ideen gefragt!
|
 |