hallo zusammen.
hab mal wieder ein problemchen... also ich habn timer, dem wird die anzahl der sekunden übergeben, die er laufen soll... z.b. soll der timer 30 sekunden laufen, wenn aber in dieser zeit der timer nochmal aufgerufen wird und ihm ein anderer wert übergeben wird, soll der aktuell laufende gestoppt werden und der neue soll anfangen zu laufen.
wenn der timer aufgerufen wird, dann wird die boolean variable auf true gesetzt. diese wird vorher abgefragt und sollte dann den aktuell laufenden timer abbrechen... wieso funktioniert das nicht???
danke schonmal für eure mithilfe!
was vielleicht noch wichtig ist:
so werden die timer aufgerufen (über menüs von der gui)..:
hab mal wieder ein problemchen... also ich habn timer, dem wird die anzahl der sekunden übergeben, die er laufen soll... z.b. soll der timer 30 sekunden laufen, wenn aber in dieser zeit der timer nochmal aufgerufen wird und ihm ein anderer wert übergeben wird, soll der aktuell laufende gestoppt werden und der neue soll anfangen zu laufen.
Code:
public void timerKI(int zeit){
if(timerläuft==true){
t1.cancel();
}
tt1 = new TimerTask()
{
@Override
public void run()
{
if (sum < 31)
{
timerläuft=true;
System.out.println("timer 1 " + sum);
sum++;
}
}
};
t1 = new Timer();
t1.scheduleAtFixedRate(tt1, 0, 1000);
try
{
Thread.sleep(zeit);
t1.cancel();
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
wenn der timer aufgerufen wird, dann wird die boolean variable auf true gesetzt. diese wird vorher abgefragt und sollte dann den aktuell laufenden timer abbrechen... wieso funktioniert das nicht???
danke schonmal für eure mithilfe!
was vielleicht noch wichtig ist:
so werden die timer aufgerufen (über menüs von der gui)..:
Code:
if("menüAnfänger".equals(e.getActionCommand())){
r1 = new Runnable(){
public void run()
{
Schwierigkeitsgrad s = new Schwierigkeitsgrad();
s.timerKI(30000);
}
};
new Thread( r1 ).start();
}
if("menüFort".equals(e.getActionCommand())){
r2 = new Runnable(){
public void run()
{
Schwierigkeitsgrad s = new Schwierigkeitsgrad();
s.timerKI(15000);
}
};
new Thread( r2 ).start();
}
if("menüProfi".equals(e.getActionCommand())){
r3 = new Runnable(){
public void run()
{
Schwierigkeitsgrad s = new Schwierigkeitsgrad();
s.timerKI(10000);
}
};
new Thread( r3 ).start();
}