Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „Java | wiederholender Countdown Timer“

Triggertrix

Filmwechsler

Hallo,

keine Ahnung ob ich das hier fragen "darf", denn es geht um Programmierung in Java.
Ich möchte gerne folgendes realisieren.
1. Gesamtzeit abfragen (z.B. 12 Min.)
2. Zeit1 abfragen (z.B. 10 Sekunden)
3. Zeit 2 abfragen (z.B. 5 Sekunden)

Jetzt soll innerhalb von 1. der Timer von 2. laufen und dann (hier eben) nach 10 Sekunden ein Piep ausgeben. Dann soll der Timer von 3. anfangen (5Sec) und dann wieder der von 2.………

Also quasi 2.&3. in Endlosschleife bis Zeit von 1. erreicht ist.

Da ich aber gerade erst Angefangen habe Java zu lernen, habe ich mit gerade dieser Aufgabenstellung mehr Probleme als erwartet, daher die Frage ob mir jemand aus meinem Codegewurschtel wieder raus helfen kann.

Dank & Gruss

Code:
package FitFu;

import java.util.Timer;
import java.util.TimerTask;
import java.util.Scanner;
import java.awt.Toolkit;

public class Fitness {
	Timer timer;

	public Fitness(int seconds) {
		timer = new Timer();
		timer.schedule(new RemindTask(), seconds * 1000);
	}

	class RemindTask extends TimerTask {
		public void run() {
			System.out.println("Zeit vorbei");
			System.out.flush();
			Toolkit.getDefaultToolkit().beep();
			timer.cancel();
		}
	}

	public static void main(String args[]) {
		Scanner scan = new Scanner(System.in);
		int gesamt = 0;
		System.out.println("Gib mir die Geamtzeit");
		int dauer = scan.nextInt();
		scan.nextLine();

		System.out.println("Gib mir die Zeit 1");
		int zeit1 = scan.nextInt();
		scan.nextLine();

		System.out.println("Gib mir die Zeit 2");
		int zeit2 = scan.nextInt();
		scan.nextLine();
		int zeitSum = 0; 
		
		while (gesamt < dauer) {
			Reminder c = new Reminder(dauer);
			while (zeitSum<dauer) {
				zeitSum = zeitSum + zeit1 + zeit2;
				gesamt = gesamt + zeitSum;
				Reminder a = new Reminder(zeit1);
				Reminder b = new Reminder(zeit2);
			}
			System.out.println("Zeit " + zeit1 + " Sec. laueft");
			System.out.println("Zeit " + zeit2 + " Sec. laueft");
		}
		scan.close();
	}
}
 

Duddle

Posting-Frequenz: 14µHz

AW: Java | wiederholender Countdown Timer

Was ist im Moment genau dein Problem? Ich sehe einige verbesserungswürdige Stellen, aber es scheint ja so erstmal zu funktionieren.

Edit: okay, es funktioniert nicht ganz so wie du es beschrieben hast. Mein Testfall war zu simpel.

Edit2: Vergiss mal die while-Schleife. Wenn du schon Timer benutzt, dann solltest du auch einen für deine Gesamtdauer einsetzen können. Du solltest es schaffen, mithilfe einer von TimerTask abgeleiteten Unterklasse einen allgemeinen zeitgesteuerten Task zu schreiben, der einen im Konstruktor übergebenen Task aufruft.
Einfacher wäre es wohl, die beiden Perioden parallel laufen zu lassen und auf mgl. Interaktion untereinander zu verzichten.


Duddle
 
Zuletzt bearbeitet:

Triggertrix

Filmwechsler

AW: Java | wiederholender Countdown Timer

Was ist im Moment genau dein Problem?

Genau das was Du im Edit beschreibst… ;o)

Ich bekomme es A. nicht zum laufen (also so das es das tut was es soll)
Und B. bin ich seeeeeehr offen für die "verbesserungswürdige Stellen" da ich an so Aufgaben übe die Zusammenhänge und "Technik" zu verstehen.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
175.158
Beiträge
2.581.869
Mitglieder
67.224
Neuestes Mitglied
Aliyah79
Oben