Programmschleife

Hallo!

Ich möchte mit einem Java-Applet eine Simulation machen. Dazu wollte ich eine Do-Schleife benutzen, die nach dem Starten des Applets immer wieder durchlaufen wird.
Wo müsste denn eine solche Schleife hin? In der start()-Methode funktioniert das nicht. Beim Starten des Applets kommt nur „Applet initialisiert“ und muss dann mit dem Task-Manager beendet werden.
Ich nehme an, da müsste noch so etwas wie ein DoEvents in VB rein, oder? Bis jetzt ist in der Schleife erst nur mal ein repaint().

Nico

Moien

Wo müsste denn eine solche Schleife hin?

In eine eigene Thread-Klasse.

Java arbeitet mit einem AWT-Thread. Der arbeitet alle GUI-Interationen (paint, repaint, ActionListener,…) ab. Wenn man diesen Thread in einer Endlosschleife hält bleibt die GUI stehen. Man muss einen 2. Thread erzeugen und diesen für die Endlosschleife benutzen.

Ich nehme an, da müsste noch so etwas wie ein DoEvents in VB
rein, oder?

Bei VB (zumindest bei den neueren) werden GUI-Aktion und Änderungen über einen mehrere Threads gemacht. Da könnte man einfachso einen für die Endlosschleife missbrauchen und die GUI würde trotzdem teilweise weiterlaufen.

cu

Danke für die Antwort. Ich müsste aber in dem Thread auch in das Applet zeichnen können. Dafür müsste ich ja das Applet als Objekt haben. Und zwar das, das da schon existiert. Eine neue Instanz geht ja nicht.
Wie bekomme ich denn das Applet-Objekt?

Nico

Moien

Ich müsste aber in dem Thread auch in
das Applet zeichnen können. Dafür müsste ich ja das Applet als
Objekt haben.

deine Thread-klasse:

public class MyThread extends Thread{

 public Applet toUse;

 public MyThread (Applet A){
 toUse = A;
 }

 public void run (){
 //malen mit toUse
 }
}

in deiner Applet-class:

MyThread mt = new MyThread(this);
mt.**start()** //Nicht run aufrufen, immer start.

Problem gelöst ?

cu

Ach ja. Das war wohl zu einfach.
Wenn noch weitere Probleme auftreten sollten, melde ich mich nochmal.

Nico