Threads Timer wird immer schneller

Bastimey1999

Mitglied
Guten Tag,

ich bin gerade dabei ein kleines "Spiel" zu programmieren, wo man so eine Art Panini Sticker sammeln kann. Wenn man ein Päckchen öffnet soll eine Animation starten, die aber bei erneuertem ausführen immer schneller wird.

Java:
int  counter = 0;
TimerTask action = new TimerTask() {
   public void run() {
     counter++;
     if(counter == 1) {
       btnP1.setVisible(true);
       btnP2.setVisible(false);
       btnP3.setVisible(false);
       btnP4.setVisible(false);
       btnP5.setVisible(false);
     } if (counter == 2) {
       btnP1.setVisible(false);
       btnP2.setVisible(true);
       btnP3.setVisible(false);
       btnP4.setVisible(false);
       btnP5.setVisible(false);
     } if (counter == 3) {
       btnP1.setVisible(false);
       btnP2.setVisible(false);
       btnP3.setVisible(true);
       btnP4.setVisible(false);
       btnP5.setVisible(false);
     } if (counter == 4) {
       btnP1.setVisible(false);
       btnP2.setVisible(false);
       btnP3.setVisible(false);
       btnP4.setVisible(true);
       btnP5.setVisible(false);
     } if (counter == 5) {
       btnP1.setVisible(true);
       btnP2.setVisible(true);
       btnP3.setVisible(true);
       btnP4.setVisible(true);
       btnP5.setVisible(true);
   }
}//end of run
};
Timer caretaker = new Timer();
caretaker.scheduleAtFixedRate(action, 0, 500);

diese Funktion ist an einen Button verknüpft.
schonmal danke im vorraus. 🙂
 
Zuletzt bearbeitet von einem Moderator:
Ich glaube mit cancel()

ich weiß nur nicht wo ich das einbauen soll.

Code:
                       counter = 0;
                        TimerTask action = new TimerTask() {
                           public void run() {
                               

                               
                                    counter++;
                                    if(counter == 1){
                                        btnP1.setVisible(true);
                                        btnP2.setVisible(false);
                                        btnP3.setVisible(false);
                                        btnP4.setVisible(false);
                                        btnP5.setVisible(false);
                                    }if (counter == 2){
                                        btnP1.setVisible(false);
                                        btnP2.setVisible(true);
                                        btnP3.setVisible(false);
                                        btnP4.setVisible(false);
                                        btnP5.setVisible(false);
                                       
                                    }if (counter == 3){
                                        btnP1.setVisible(false);
                                        btnP2.setVisible(false);
                                        btnP3.setVisible(true);
                                        btnP4.setVisible(false);
                                        btnP5.setVisible(false);
                                    }if (counter == 4){
                                        btnP1.setVisible(false);
                                        btnP2.setVisible(false);
                                        btnP3.setVisible(false);
                                        btnP4.setVisible(true);
                                        btnP5.setVisible(false);
                                    }if (counter == 5){
                                        btnP1.setVisible(true);
                                        btnP2.setVisible(true);
                                        btnP3.setVisible(true);
                                        btnP4.setVisible(true);
                                        btnP5.setVisible(true);
                                    }
                                   
                                   

                           
                            }//end of run
                           
                                                       
                           
                        };
                       
                        Timer caretaker = new Timer();
                        caretaker.scheduleAtFixedRate(action, 0, 500);
                        caretaker.cancel();

so passiert gar nichts, dh. der Timer stoppt doch sofort oder? Programmiere noch nicht so lange 🙁
 

Zurück
Oben