Countdown java programieren
hallo,
Ich habe in java eine Countdown programiert der sehr einfach ist [siehe Code]. Jetzt will ich es aber so machen das man die Countdown zahl selbstfestlegen kann aber ich krieg das nicht hin. Meine frage ist jetzt wie mache ich das dass wenn ich zum beispiel eingebe der Countdown soll 500 Sekunden Lang laufen das dieser auch 500 Sekunden läuft ohne das ich jedes mal in den Code reinmuss und den int countdown zu ändern.
:Code
public static void main(String args[]){
int countdown = 20;
for(int i = countdown; i != 0; i --){
System.out.println(i);
}
}
}
Danke schon mal für eure Hilfe
2 Antworten
Mit einer Variabel countdown, welche du eingeben lassen musst.
System.out.println("Geben Sie die Countdownlänge ein!"); String s = javax.swing.JOptionPane.showInputDialog( "Bitte Zahl eingeben" ); int countdown = Integer.parseInt( s );
for(int i = countdown; i!=0; i--) { System.out.println(i); }
War er vorher langsamer?
Ich denke da wirst du mit einer Zeitmethode ran müssen...das ist dann weniger trivial..
System.out.println("Geben Sie die Countdownlänge ein!"); String s = javax.swing.JOptionPane.showInputDialog( "Bitte Zahl eingeben" ); int countdown = Integer.parseInt( s );
for(int i = countdown; i!=0; i--) { System.out.println(i); Thread.sleep(1000); }
Mach das mal so :) thread.sleep baut eine Pause für 1000 Millisekunden also 1 Sekunde ein.
nein voher war er nicht langsamer mit den Countdown will ich erreichen das man eine zeit eingibt in Sekunden und wenn diese Sekunden um sind soll ein Lied abspielen wie man des mit den Lied abspielen macht weiss ich aber eben nicht wie ich des mache das der Countdown langsamer ist.
Bisschen spät, aber Thread Sleep wäre eine Lösungsmöglichkeit ;) habs auch so gemacht :D
Thread.sleep(); ist allerdings nicht so "schön". Am besten eigenen Thread für soetwas erstellen oder einen Timer verwenden.
int countdown = Integer.parseInt(JOptionPane.showInputDialog("Wartezeit eingeben"));
Für den Countdown: ich würde das ganze in eine eigene Unterklasse der Klasse Thread packen. Würde dann so aussehen:
Thread.java
public class Countdown extends Thread{
{setPriority(MAX_PRIORITY);}
public Countdown(){ super(); }
public void run(){
int countdown = Integer.parseInt(JOptionPane.showInputDialog("Wartezeit eingeben"));
int laufzeit = 500; //Die gesamte Laufzeit des Countdowns.
for(int i = countdown; i != 0; i --){
System.out.println(i);
try{
this.sleep((laufzeit/countdown)*1000);
}catch(Exception e1){System.err.println("Thread abgebrochen!");}}
}}
Main.java
public class Main{
public static void main(String args[]){
Countdown cd = new Countdown();
cd.start();
}
}
Danke es funktzioniert nur ist der Countdown etwas zu schnell wie kann ich den den Verlangsamen?