Countdown in Java?

2 Antworten

Die Zufallsverzögerung kannst du so berechnen:

int randomDelay = ThreadLocalRandom.current().nextInt(1, 4);

Die zeitliche Steuerung solltest du mit einem Timer durchführen. Da ich annehme, dass du die Zahl auf einer grafischen Oberfläche einblenden möchtest, wäre zu empfehlen, einen für das jeweilige GUI-Toolkit spezifischen Timer zu verwenden.

Bei einer draw loop kannst du die Zeit ungefähr stoppen (beachte, dass jede Iteration einer draw loop nicht immer gleichlang sein muss).

Beispiel:

long start = System.currentTimeMillis();
long delay = randomDelay * 1000;

while (true) {
  long timeDifference = System.currentTimeMillis() - start;

  if (timeDifference >= delay) {
    // do something ...
  }
}     
new java.util.Timer().schedule( 
        new java.util.TimerTask() {
            @Override
            public void run() {
                // dein code hier
            }
        }, 
        new Random().nextInt(3)*1000
);

Führt den Code nach 1-3 Sekunden aus. Millisekunden verwenden passt nicht so :/

Woher ich das weiß:Hobby – Mehr als 7+ Jahre Erfahrung im Bereich der Informatik

selli362 
Beitragsersteller
 21.01.2021, 23:49

TimerTask ist ein Thread oder?

0