TimerTask

Status
Nicht offen für weitere Antworten.

BrynFury

Mitglied
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.

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();	
		}
 

thE_29

Top Contributor
Was geht den nicht?!
Kommen die Ausgaben nicht oder an was hakts?!

Wird sum eigentlich zurückgesetzt?! (weil wenn nicht sieht man ja keine Ausgabe mehr und die Variable wird auch nicht auf true gesetzt)

Und BITTE nimm keine ä,ö, ß in Variablen/Klassennamen! Nur weil es geht, sollte man es trotzdem nicht machen!
 

BrynFury

Mitglied
also die timer werden schon aufgerufen! d.h. der 1. timer läuft bis zum schluss..u wenn ich den zweiten aufrufe, dann laufen diese parallel bis zu ihrem ende. also wenn i den timer zum 2. mal aufrufe u nen anderen wert übergebe, dann wird der akutelle nicht abgebrochen...

ok werd das ändern ;)
 

Leroy42

Top Contributor
thE_29 hat gesagt.:
Und BITTE nimm keine ä,ö, ß in Variablen/Klassennamen! Nur weil es geht, sollte man es trotzdem nicht machen!

Neandertaler hat gesagt.:
Nur weil Browser neuerdings Bilder darstellen können, sollte man
es trotzdem nicht machen.
In Variablennamen sind deutsche Umlaute oder hebräische Buchstaben
problemlos möglich. In Klassennamen gebe ich thE_29 allerdings recht.
 

Wildcard

Top Contributor
Leroy42 hat gesagt.:
In Variablennamen sind deutsche Umlaute oder hebräische Buchstaben
problemlos möglich. In Klassennamen gebe ich thE_29 allerdings recht.
Das ist an jeder Stelle Mist.
Wie soll denn jemand mit einer englischen Tastatur deine Umlaut-Methoden aufrufen?
 

Leroy42

Top Contributor
Wildcard hat gesagt.:
Leroy42 hat gesagt.:
In Variablennamen sind deutsche Umlaute oder hebräische Buchstaben
problemlos möglich. In Klassennamen gebe ich thE_29 allerdings recht.
Das ist an jeder Stelle Mist.
Wie soll denn jemand mit einer englischen Tastatur deine Umlaut-Methoden aufrufen?

Hääh! Seit wann benutzt du deutsche (oder hebräische) Variablennamen,
wenn du Software entwickelst die in einem internationalen Umfeld weiter
verwendet werden. :autsch:

In dem Fall beschränkt man sich natürlich auf
rein englischsprachige Bezeichnungen.
 

Wildcard

Top Contributor
Leroy42 hat gesagt.:
Hääh! Seit wann benutzt du deutsche (oder hebräische) Variablennamen,
wenn du Software entwickelst die in einem internationalen Umfeld weiter
verwendet werden. :autsch:

In dem Fall beschränkt man sich natürlich auf
englischsprachige Bezeichner.
Deshalb sollte man sich das von Anfang an angewöhnen.
Allein schon wenn man seine eigenen Programme noch benutzen will nachdem man sich einer programmiererfreundliche englische Tastatur geleistet hat.
 

BrynFury

Mitglied
ok ich sehe hier ist einiges los...aber leider nicht zu meinem problem!!! ;)

weiß denn jemand, wie ich mein problem lösen kann???
 

thE_29

Top Contributor
Siehe mein Post ;) (hast das sum zurücksetzen umgebaut?!)


@Leory: bei uns in der Firma war jemand (eine Sie) so schlau und hat eine Klasse mit nem ß geschrieben (Fußzeile)..

Tjo, jetzt geht obfuscaten auch nima, weils den bei der Klasse aufschmeißt (zumindest beim JBuilder)
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben