H
Heidii
Gast
Hallo,
um mich mit dem Thema Threads zu befassen habe ich ein kleines Programm mit einem JButton (Start) geschrieben.
Gewünschte Funktion:
Erstes Mal auf den Button klicken:
der Text Start auf dem Button wird auf Beenden gewechselt.
Pro Sekunde wird ein Text ausgegeben.
Zweites Mal auf den Button klicken:
der Text Beenden auf dem Button wird auf Start gewechselt.
Die Textausgabe wird beendet.
Drittes Mal auf den Button klicken:
Alles beginnt wieder von vorne.
Hier mein Code (Auszug), der Fensterklasse mit dem JButton:
Hier mein Code (Auszug) der Thread Klasse:
Folgendes ist das Problem: Wenn ich den Button einmal klicke funktioniert alles wie gewünscht. Auch wenn ich 2 Mal klicke funktioniert alles nach Plan.
Wenn ich ein 3tes mal klicke, dann sollte ich doch den Thread wieder von vorne starten, dies funktioniert aber nicht und ich kriege vom Compiler folgende Meldung:
Exception in thread "AWT-EventQueue-0
Ich denke ich starte den Thread korrekt, aber ich beende ihn irgendwie nicht richtig und aus diesem Grund kann ich ihn nicht neu starten.
Kann mir jemand sagen ob dies richtig ist, bzw. was die Compilermeldung zu bedeuten hat, bzw. was ich anpassen muss. Vielen Dank für alle Tipps schon jetzt.
Heidii
um mich mit dem Thema Threads zu befassen habe ich ein kleines Programm mit einem JButton (Start) geschrieben.
Gewünschte Funktion:
Erstes Mal auf den Button klicken:
der Text Start auf dem Button wird auf Beenden gewechselt.
Pro Sekunde wird ein Text ausgegeben.
Zweites Mal auf den Button klicken:
der Text Beenden auf dem Button wird auf Start gewechselt.
Die Textausgabe wird beendet.
Drittes Mal auf den Button klicken:
Alles beginnt wieder von vorne.
Hier mein Code (Auszug), der Fensterklasse mit dem JButton:
Java:
// Im Konstruktor lege ich eine Instanz vom Thread an:
Faden MFaden = new Faden();
private class TheEvent implements ActionListener{
public void actionPerformed(ActionEvent e) {
if(pushed==false){
Knopf1.setText("Beenden");
pushed = true;
MFaden.start();
}
else{
Knopf1.setText("Start");
pushed = false;
MFaden.interrupt();
}
}
}
Hier mein Code (Auszug) der Thread Klasse:
Java:
public void run(){
while(this.isInterrupted()==false){
System.out.println("TEST");
try {
sleep(1000);
} catch (InterruptedException e) {
return;
}
}
}
Folgendes ist das Problem: Wenn ich den Button einmal klicke funktioniert alles wie gewünscht. Auch wenn ich 2 Mal klicke funktioniert alles nach Plan.
Wenn ich ein 3tes mal klicke, dann sollte ich doch den Thread wieder von vorne starten, dies funktioniert aber nicht und ich kriege vom Compiler folgende Meldung:
Exception in thread "AWT-EventQueue-0
Ich denke ich starte den Thread korrekt, aber ich beende ihn irgendwie nicht richtig und aus diesem Grund kann ich ihn nicht neu starten.
Kann mir jemand sagen ob dies richtig ist, bzw. was die Compilermeldung zu bedeuten hat, bzw. was ich anpassen muss. Vielen Dank für alle Tipps schon jetzt.
Heidii