Problem mit Threads (sollte simpel sein...)

virtualinsanity200

Grünschnabel
Hallo, Leute!
Ich bräuchte mal eure Hilfe:
Ist es normal, dass, wenn ich einen Thread am laufen habe, Buttons bzw. der ActionListener nicht mehr aktiv sind? Innerhalb des Threads sind sleep(...) bzw yield() aufrufe, hilft aber nichts. Wie bekomm ich es trotzdem hin, einen Thread mit einem Button zu starten, der so lange ausgeführt wird, bis der Button wieder gedrückt wird?
Danka, danke!
Sören
 
Hallo!

Scheinbar legst du mit einem Thread.sleep() den Event Dispatch Thread schlafen... lagere die Aktion die du "pausieren" möchtest in einen anderen Thread aus und leg diesen dann schlafen. Denke daran dabei dass du Manipulationen an der UI nur über den Event Dispatch Thread (EDT) machen darfst... von anderen Threads aus muss man die Operationen per EventQueue.invokeLater(new Runnable(){... bzw. EventQueue.invokeAndWait(... an den EDT übergeben.

Gruß Tom
 
Hmm.. den EventDispatchThread schlafen legen?
Eigentlich ist der fragliche Thread schon ausgelagert.(Sofern ich die Bedeutung des Wortes "auslagern" verstehe.) Eine eigene Klasse mit Runnable Interface. In meinem Applet wird dann der Thread per Buttondruck gestartet. Der tut auch seine Arbeit, nur etwas zu eifrig...
Ich bin mir sicher, das ganze hat eine einfachere Lösung... Deine Verstehe ich zugegebenermaßen nicht so richtig.
Ich will echt nichts großartiges, nur Thread per Knopfdruck starten und per Knopfdruck wieder beenden. Hab zwei Semester Java an der FH gehabt, diese simple Aufgabe kann doch nicht zu hoch für mich sein, oder?
Aber auf jeden Fall: Danke für alle Bemühungen. Und den EventDispatchThread- Schlafenleg-Ansatz versuch ich mal zu verfolgen...
Tschö
Sören
 
Als Thread.currentThread().getName zeigt er mir "AWT event Queue -1" an. Lagst also richtig.
Aber das kann doch nicht Sinn der Sache sein, dass man nicht seinen eigenen Thread warten lassen kann.
Ich versteh die Welt nicht mehr.

Moment mal- AWT? Wenn wirklich die AWT event Queue aktiv ist, sollte dann nicht mein ActionListening funktionieren? Gefährliches Halbwissen.

Also, für mich Idioten nochmal:
Ich habe einen Thread gemacht, damit ich gleichzeitig eine Methode in einer Schleife ausführen und noch meine Buttons abhören kann. Soweit liegt meine Logik richtig, oder?
Wenn ihr eine so simple Aufgabe habt, liebe Leser, geht ihr dann auch mit so schweren Geschützen an die Sache wie Tom?
 
Zurück