O
Ondine
Gast
GUten Abned,
ich habe ein Problem mit dem Timer. Ich habe einen Timer, der eine TimerTask ausführt. Ich würde die Ausführung gerne pausieren können und später wieder weiterführen können.
das ist die TimerTask
[JAVA=42]import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JFrame;
public class Schedule extends TimerTask{
JFrame f;
DrawText d; // Zeichnen des Textes
Timer t;
int position; //Positio im Array
long[] seconds; // Sekundenarray enthaelt Sekunden pro Wort
int [] indexes; // array mit Indexen der Highlightwoerter
/*
* seconds: Laenge in Mikrosekunden der Klangwoerter, indexes: Indezes der Woerter im Text,
* position = 0
*/
public Schedule(JFrame f, DrawText d, Timer t, int position, long [] seconds, int[] indexes){
this.f = f;
this.d = d;
this.t = t;
this.position = position;
this.seconds = seconds;
this.indexes = indexes;
}
public void run(){
if(position < indexes.length){
int j = indexes[position];
d.setcurrentword(j);
}
f.repaint(); //neuzeichnen
if(position < seconds.length){
Schedule t2 = new Schedule(f, d, t, position+1, seconds, indexes);
t.schedule(t2, seconds[position]/1000);
//neuer Task mit naechsten Zeiten
}
}
}[/code]
und so starte ich den timer
[JAVA=42]
timer = new Timer();
t = new Schedule(f, p, timer, 0, mp, po);
timer.schedule ( t, 0 );[/code]
irgendwie scheint es keine einfach Lösung für dieses Problem zu geben. Ich hab jedenfalls keine gefunden, obwohl das Problem ja ein ganz simples ist.
Noch mal zur Aufklärung: ich möchte später, wenn der benutzer in der GUI den Button "Pause" klickt, die Aufgabe die der Timer ausführt pausieren, wenn der Benutzer dann wieder den Button "Play" klickt, soll der Timer die Aufgabe wieder aufnehmen.
Würde mich über eine Lösung freuen.
ich habe ein Problem mit dem Timer. Ich habe einen Timer, der eine TimerTask ausführt. Ich würde die Ausführung gerne pausieren können und später wieder weiterführen können.
das ist die TimerTask
[JAVA=42]import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JFrame;
public class Schedule extends TimerTask{
JFrame f;
DrawText d; // Zeichnen des Textes
Timer t;
int position; //Positio im Array
long[] seconds; // Sekundenarray enthaelt Sekunden pro Wort
int [] indexes; // array mit Indexen der Highlightwoerter
/*
* seconds: Laenge in Mikrosekunden der Klangwoerter, indexes: Indezes der Woerter im Text,
* position = 0
*/
public Schedule(JFrame f, DrawText d, Timer t, int position, long [] seconds, int[] indexes){
this.f = f;
this.d = d;
this.t = t;
this.position = position;
this.seconds = seconds;
this.indexes = indexes;
}
public void run(){
if(position < indexes.length){
int j = indexes[position];
d.setcurrentword(j);
}
f.repaint(); //neuzeichnen
if(position < seconds.length){
Schedule t2 = new Schedule(f, d, t, position+1, seconds, indexes);
t.schedule(t2, seconds[position]/1000);
//neuer Task mit naechsten Zeiten
}
}
}[/code]
und so starte ich den timer
[JAVA=42]
timer = new Timer();
t = new Schedule(f, p, timer, 0, mp, po);
timer.schedule ( t, 0 );[/code]
irgendwie scheint es keine einfach Lösung für dieses Problem zu geben. Ich hab jedenfalls keine gefunden, obwohl das Problem ja ein ganz simples ist.
Noch mal zur Aufklärung: ich möchte später, wenn der benutzer in der GUI den Button "Pause" klickt, die Aufgabe die der Timer ausführt pausieren, wenn der Benutzer dann wieder den Button "Play" klickt, soll der Timer die Aufgabe wieder aufnehmen.
Würde mich über eine Lösung freuen.