countdown zähl problem

Status
Nicht offen für weitere Antworten.

Nao88

Bekanntes Mitglied
sooo das Programm ist erst am Anfang und deshalb zähle ich nur die Minuten;)
wenn ich es ausführ wird gar keine zeit gezählt und ich weiß nich warum .
Es kommt sofort “die zeit ist nicht rum “und darauf“ sofort die zeit ist rum“
Und eigentlich sollte häufiger die zeit ist nicht rum erscheinen


Fachklasse

Java:
import java.util.Date;
import java.text.SimpleDateFormat;

class countdown {
	int dauerminuten;

	void zalen() {
		int i1;
		SimpleDateFormat date1 = new SimpleDateFormat("mm");

		i1 = (int) Double.parseDouble(date1.format(new Date()));
		i1 = i1 + dauerminuten;

		for (int i2 = 0; i2 < i1; i2 = (int) Double.parseDouble(date1
				.format(new Date()))) {
			System.out.println("die zeit ist nicht rum");
		}
		System.out.println("die zeit ist rum");
	}

	public countdown(int dauerminuten) {
		dauerminuten = dauerminuten;

	}
}

Hauptklasse
Java:
import javax.swing.JOptionPane;

public class Haupt {
	public static void main(String[] args) {
		String b = JOptionPane.showInputDialog("Geben Sie die Zeit ein: ");
		int dauerminuten;
		dauerminuten = (int) Double.parseDouble(b);
		countdown r1 = new countdown(dauerminuten);
		r1.zalen();
	}

}
 

0din

Bekanntes Mitglied
ich hab nen timer hier, der zählt einwandfrei die zeit bis zum eingeproggten zeitpunkt runter... (nur darunter nich so recht)

der funktioniert eig. über das runterzählen der millisekunden.
sprich: ich hab die ms jetzt und die ms die zu erreichen sind, der unterschied wird in sek, min, std umgerechnet... halt nur im positiven bereich.


Das Model:
Java:
import java.util.Date;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Observable;

import javax.swing.Timer;



public class Model extends Observable
{
	private Date current;
	private Date target;
	private Timer ticker;
	
	public Model()
	{
		Calendar cal = Calendar.getInstance(); 
		current = new Date();

/*
* hier wird das ziel datum/zeit eingestellt
*/
		target = new Date(109, 7, 1);
		target.setHours(12);
		target.setMinutes(44);
		ticker = new Timer(1000, new AL(this));
	}
	
	public void ticked()
	{
		current = new Date();
		setChanged();
		notifyObservers();
	}
	
	public Date getCurrent()
	{
		return current;
	}

	public Date getTarget()
	{
		return target;
	}

	public void startTicker()
	{
		ticker.start();
	}
	
	public void stopTicker()
	{
		ticker.stop();
	}
	
	private class AL implements ActionListener
	{
		private Model mdl;
		
		public AL(Model mdl)
		{
			this.mdl = mdl;
		}
				
		@Override
		public void actionPerformed(ActionEvent arg0)
		{
			mdl.ticked();
		}
	}
}


Die View, die das Model anzeigt:
Java:
import java.awt.Color;
import java.awt.Font;
import java.util.Observable;
import java.util.Observer;

import javax.swing.JLabel;
import javax.swing.JPanel;



public class View extends JPanel implements Observer
{
	private Model mdl;
	private JLabel lbl;
	
	public View(Model mdl)
	{
		this.mdl = mdl;
		lbl = new JLabel("", JLabel.CENTER);
		this.setLayout(null);

		this.setBackground(Color.BLACK);
		
		Color c = Color.red;
		lbl.setSize(300,100);
		lbl.setLocation(0, 0);
		lbl.setForeground(c);
		lbl.setBackground(Color.BLACK);
		
		lbl.setText(" ");
		
		this.add(lbl);
		this.setVisible(true);
	}

	public void zeigTimer()
	{
		long ms = mdl.getCurrent().getTime();
		long ms2 = mdl.getTarget().getTime();
		
		long sek = (ms2 / 1000) - (ms / 1000);
		long min = sek / 60;
		long std = min / 60;
		
		sek = sek - (min * 60);
		min = min - (std * 60);
		//std = std - ((std / 24) * 24);
		
		String s = "" + sek;
		String m = "" + min;
		
		if(sek < 10)
		{
			s = "0" + sek;
		}
		if(min < 10)
		{
			m = "0" + min;
		}
		
		lbl.setText("<html><h1><b>" + std + ":" + m + ":" + s + "");
		
	}
	
	@Override
	public void update(Observable arg0, Object arg1)
	{
		zeigTimer();
		repaint();		
	}
}


Das Applet
Java:
import javax.swing.JApplet;



public class Starter extends JApplet
{
	private Model mdl;
	private View vw;
	
	public void init()
	{
		mdl = new Model();
		vw = new View(mdl);
		mdl.addObserver(vw);
		this.setSize(300, 100);
		this.add(vw);
		this.setContentPane(vw);
		this.setVisible(true);
		mdl.startTicker();
	}
}
 

Nao88

Bekanntes Mitglied
daas sieht ganz gut aus :toll: und funzt auch soweit aba ich weiß immer noch nicht was bei mir falsch ist ?????:L und deine Sache ist etwas dumm da weiter zu machen denn dich muss zum Schluss ein beeeep to einfügen der zum Schluss immer in kürzeren abstanden kommt:oops:
 

0din

Bekanntes Mitglied
man könnte nen zweiten timer einbaun, der das piepen regelt un von sekunde zu sekunde schneller läuft ???:L

Model mit 2 Timern
Java:
import java.util.Date;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Observable;

import javax.swing.Timer;



public class Model extends Observable
{
	private Date current;
	private Date target;
	private Timer ticker;
	private Timer ticker2;
	
	public Model()
	{
		Calendar cal = Calendar.getInstance(); 
		current = new Date();
		target = new Date(109, 7, 1);

		target.setHours(12);
		target.setMinutes(44);
		ticker = new Timer(1000, new AL(this));
		ticker2 = new Timer(999, new AL(this));
	}
	
	public void ticked()
	{
		current = new Date();
		setChanged();
		notifyObservers();
	}
	
	public void ticked2()
	{
		current = new Date();
		//PIIIIEEEEP
		if(ticker2.getDelay() > 99)
		{
		      ticker2.setDelay(ticker2.getDelay() - 100);
		}
		setChanged();
		notifyObservers();
	}
	
	public Date getCurrent()
	{
		return current;
	}

	public Date getTarget()
	{
		return target;
	}

	public void startTicker()
	{
		ticker.start();
	}
	
	public void stopTicker()
	{
		ticker.stop();
	}

	public void startTicker2()
	{
		ticker2.start();
	}
	
	public void stopTicker2()
	{
		ticker2.stop();
	}
	
	
	private class AL implements ActionListener
	{
		private Model mdl;
		
		public AL(Model mdl)
		{
			this.mdl = mdl;
		}
				
		@Override
		public void actionPerformed(ActionEvent arg0)
		{
			Timer t = (Timer) arg0.getSource();
			if(t.getDelay() == 1000)
			{
				mdl.ticked();
			}
			else
			{
				mdl.ticked2();
			}

		}
	}
}

und in der view bei zeigTimer()
Java:
		if(std == 0 && min == 0 && sek <= 10)
		{
			mdl.startTicker2();
		}

nur weiß ich net ob das ganze in einem thread tut...
 
Zuletzt bearbeitet:

Michael...

Top Contributor
Mal abgesehen, dass Dein Timer ein ganz schon merkwürdiges Konstrukt ist, liegt der wesentliche Fehler hier:
Java:
public countdown(int dauerminuten) {
	dauerminuten = dauerminuten;
}
Du weist hier der Variablen dauerminuten, die nur im Konstruktur gilt, sich selbst zu. Richtig müsste es heissen
Code:
this.dauerminuten = dauerminuten;
Abgesehen davon, dass man Klassen und deren Konstruktoren groß schreibt, besteht bei Deinem Code die Gefahr einer endlos Schleife (bsp. es ist xx.59 Uhr der Anwender gibt 1min ein --> i1 = 60 und i2 bleibt für immer kleiner i1) Ausserdem erzeugst Du mit Deiner Schleife ständig Prozessorlast, man könnte z.B. Thread.sleep(...) in die Schleife einbauen um den Prozessor zwischendurch freizugeben.
 

Murray

Top Contributor
Solche Fehler passieren leicht; man kann aber sie aber leichter vermeiden, wenn man final einsetzt:

Java:
class Countdown {
	final int dauerminuten;
 
	/* .. */
 
	public Countdown( int dauerminuten) {
		this.dauerminuten = dauerminuten;
	}
}

Wenn man hier das this vergisst, dann meckert der Compiler darüber, dass eine finale Variable unitialisiert bleibt.

Oder auch so:
Java:
class Countdown {
	int dauerminuten;
 
	/* .. */
 
	public Countdown( final int dauerminuten) {
		this.dauerminuten = dauerminuten;
	}
}
Wenn man hier das this vergisst, dann gibt es ebenfalls einen Compile-Fehler, denn dann würde ja versucht werden, eine finale Variable neu zu setzen.

Natürlich darf man auch beides kombinieren.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Mit Countdown Midnestdauer für Teilaufgabenerledigung erzwingen Java Basics - Anfänger-Themen 8
S Stunden/Tage Countdown Java Basics - Anfänger-Themen 9
T Countdown erstellen Java Basics - Anfänger-Themen 7
T Countdown funktioniert nicht Java Basics - Anfänger-Themen 5
W Threads 1h 20min Countdown Java Basics - Anfänger-Themen 5
J Countdown Java Basics - Anfänger-Themen 3
D Erste Schritte Countdown mehrfach verwenden Java Basics - Anfänger-Themen 5
F countdown Java Basics - Anfänger-Themen 5
G Countdown von Heute bis Zieldatum Java Basics - Anfänger-Themen 4
N Countdown Java Basics - Anfänger-Themen 4
W Countdown auf "schwarze Blöcke" Java Basics - Anfänger-Themen 3
F Countdown und dann Aktion Java Basics - Anfänger-Themen 4
S Countdown 5min bis 0sek Java Java Basics - Anfänger-Themen 10
C countdown/timer/Zeit warten lassen Java Basics - Anfänger-Themen 14
D Countdown Funktion aus SQl Datenbank Java Basics - Anfänger-Themen 21
O Countdown mit Erhöhung Java Basics - Anfänger-Themen 2
H Countdown Java Basics - Anfänger-Themen 10
T Countdown, der in der selben Zeile bleibt Java Basics - Anfänger-Themen 6
D Timer bzw. Countdown Java Basics - Anfänger-Themen 3
T countdown Methode mit Timer Java Basics - Anfänger-Themen 2
F Countdown Probleme Java Basics - Anfänger-Themen 9
R Countdown erstellen Java Basics - Anfänger-Themen 3
S Countdown auf JPanel ausgeben Java Basics - Anfänger-Themen 6
M Countdown in Java Java Basics - Anfänger-Themen 16
B Countdown zwischen 2 Zeitpunkten Java Basics - Anfänger-Themen 4
A for Zähl schleife hilfe benötigt Java Basics - Anfänger-Themen 12
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
I WildFily - unterschiedliche Libs im Projekt verursachen Problem Java Basics - Anfänger-Themen 11
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
A ScheduledExecutorService problem Java Basics - Anfänger-Themen 7
marcelnedza Problem mit Weltzuweisung, JavaKarol Java Basics - Anfänger-Themen 13
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
M Erste Schritte Collatz Problem max int Java Basics - Anfänger-Themen 3
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
frager2345 Problem mit Methode Java Basics - Anfänger-Themen 4
L Problem bei Rechnung mit Math.pow Java Basics - Anfänger-Themen 13
A Thread-Schreibe-Lese-Problem Java Basics - Anfänger-Themen 4
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
sserio BigInteger Problem Java Basics - Anfänger-Themen 4
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
K Problem mit "Random" Java Basics - Anfänger-Themen 5
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
xanxk Problem For-Schleife mit Charakter Java Basics - Anfänger-Themen 2
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Schleife Problem Java Basics - Anfänger-Themen 2
D Problem mit der Erkennung von \n Java Basics - Anfänger-Themen 2
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Verständins Problem bei Aufgabe Java Basics - Anfänger-Themen 4
HeiTim Problem mit der Kommasetzung an der richtigen stelle Java Basics - Anfänger-Themen 59
Temsky34 Problem mit dem Code Java Basics - Anfänger-Themen 17
P Problem mit Calendar.getDisplayName() Java Basics - Anfänger-Themen 8
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
M Problem mit Klassenverständnis und Button Java Basics - Anfänger-Themen 8
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
H Problem mit Verzweigungen Java Basics - Anfänger-Themen 6
H Problem mit Rückgabewert Java Basics - Anfänger-Themen 7
josfe1234 JAVA FX problem Java Basics - Anfänger-Themen 3
A Code Problem Java Basics - Anfänger-Themen 6
Henri Problem von Typen Java Basics - Anfänger-Themen 7
J Problem mit "ArrayIndexOutOfBoundsException" Java Basics - Anfänger-Themen 11
K jackson Mapping - Problem mit Zeitzonen Java Basics - Anfänger-Themen 10
B Threads Problem mit mehreren Threads Java Basics - Anfänger-Themen 38
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
D Schleifen Problem Java Basics - Anfänger-Themen 2
H So viele Fehlermeldungen, dass ich nicht weiß wo das Problem ist. Java Basics - Anfänger-Themen 6
J JAVA-Problem blockiert MEDIATHEKVIEW Java Basics - Anfänger-Themen 13
T Problem mit Lehrzeichen und String bei einfacher Chiffre Java Basics - Anfänger-Themen 8
J extends Problem Java Basics - Anfänger-Themen 2
C Polymorphie-Problem Java Basics - Anfänger-Themen 3
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
I Format Problem mit Wert - bekomme 0,10 anstatt 10,00 Java Basics - Anfänger-Themen 6
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
J Allgemeines Problem mit Klassen Java Basics - Anfänger-Themen 5
U Problem mit dem initialisieren meines Strings in einer Schleife Java Basics - Anfänger-Themen 5
amgadalghabra algorithmisches Problem Java Basics - Anfänger-Themen 19
J Traveling Salesman Problem [Arrays] Java Basics - Anfänger-Themen 9
R ArrayList Problem Java Basics - Anfänger-Themen 6
InfinityDE Problem mit Datenübergabe an Konstruktor Java Basics - Anfänger-Themen 7
C RegEx Problem Java Basics - Anfänger-Themen 4
J Anfänger TicTacToe, Problem bei Gewinnoption, sowohl Unentschieden Java Basics - Anfänger-Themen 8
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
M Input/Output Fallunterscheidung Problem Java Basics - Anfänger-Themen 17
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
M Problem bei Ausgabe Java Basics - Anfänger-Themen 7
Splayfer Java Array Problem... Java Basics - Anfänger-Themen 2
G Problem bei der Ausgabe einer Main Claase Java Basics - Anfänger-Themen 7
F Problem mit KeyListener in kombination mit dem ActionListener Java Basics - Anfänger-Themen 4
G Subset sum problem mit Backtracking Java Basics - Anfänger-Themen 18
N Problem mit Scanner Java Basics - Anfänger-Themen 2
J Klassen Problem Java Basics - Anfänger-Themen 8
A Out.format problem. Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben