Archief - [PROG][JAVA] Teller - 1 seconde wachten

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

EyeBallz

Legacy Member
ik ben bezig aan een programma dat aftelt van een bepaald aantal ingegeven minuten.
nu zit ik met een probleem om de teller 1 seconde te laten wachten

Code:
public void countdown(int minutes)
	{
		int SecondsRemaining = minutes*60;
		while (SecondsRemaining > 0)
		{
			countdown.setText(Integer.toString(SecondsRemaining));
			try
			{
				Thread.sleep(1000);
			}
			catch(InterruptedException ie)
			{
				JOptionPane.showMessageDialog(null,"error","error",JOptionPane.ERROR_MESSAGE);
			}
			SecondsRemaining--;
			if (SecondsRemaining == 0)
			{
				JOptionPane.showMessageDialog(null,"No time left","Time up",JOptionPane.ERROR_MESSAGE);
			}
		}
	}


Met Thread.sleep(1000); telt hij dus wel degelijk af. Als ik 1 minuut ingeef, blokkeert hij 1 minuut en geeft hij daarna de JOptionPane.showMessageDialog om te zeggen dat de tijd om is.
Ik zou willen bereiken dat hij elke seconde de tijd in het JTextFilet object (=countdown) met één verminderd, dus niet blokkeren

Hit Hard

Legacy Member
Het probleem is dat je je GUI thread laat slapen, waardoor die blokkeert. Je zal dus een nieuwe Thread moeten maken die telkens een seconde blijft slapen (iets wat TimerTask waarschijnlijk doet, ik heb er nooit mee gewerkt).

.Acku.

Legacy Member
Gebruik timers ipv threads als je met een vaste delay werkt en zonder geavanceerde locking mechnismes
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan