Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hi,
mein Thread spielt fortlaufend einen Tiep-Ton ab. Wie kann ich ihn durch ein Mouse-Event beenden. ???:L
Das Programm ignoriert alle Eingaben, bis der Thread durchgelaufen ist. :cry:
ne ne, ich rufe den Thread schon mit thread.start() auf,
mal nen Beispiel
Code:
Thead und MouseListener als innere Klasse:
class ListenThread extends Thread{
public void run(){
try{....
class MyMouseListener extends MouseAdapter
{.
.
"Beim Klicken wird die boolsche variable mouseevent auf false gesetzt".
.
In der Hauptklasse:
.
.
.
ListenThread listen;
boolean mouseevent = true;
.
.
.
private void play() {
try{
while(mouseevent){
listen = new ListenThread;
listen.start();
listen.join();
}
}
.
.
.
Beim Klicken wird die Variable mouseevent zwar auf false gesetzt, aber das Programm läuft weiter, es sieht so aus, als wird die variable erst ausgewertet, nachdem alle Threads zuende sind. Wenn man die While-Schleife durch eine For-Schleife (i=1 bis 3) ersetzt, läuft der Thread dreimal durch. Klickt man wärend des Laufens mit der Maus, setzt das Programm mouseevent = false, aber erst nachdem die Schleife zuende ist.
Man müsste dem Mouse-Event irgendwie eine höhere Priorität geben ???:L ???:L
Könnte es an dem listen.join()-Aufruf liegen, aber es muss sichergestellt sein, dass die Threads nicht parallel laufen!