Java - dlaczego to nie działa? ...

Java - dlaczego to nie działa? ...

Wątek przeniesiony 2017-10-05 09:30 z Java przez ŁF.

PrezesiQ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 187
0

Witam... Chciałem sobie napisać i przetestować pewien program... Ma on równo o 20:00 pokazywać pewne okno. Jednakże on pokazuje to okno od razu... Co nie tak? Tu kod:

Kopiuj
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.time.*;
import java.util.*;
import java.sql.*;


public class Shtdwnat {
	
	static LocalTime CurrentTime;
	static LocalTime Time = LocalTime.of(20, 00, 00);
	
	public static void main(String[] args)
	{
		do
		{
			CurrentTime = LocalTime.now();
		}
		while(CurrentTime==Time);
		
		new shtdwnatFrame();
		
	}

}

Co zrobiłem nie tak? Ma mi cały czas aktualizować zmienną CurrentTime. I gdy ta zmienna będzie równa 20:00:00, to mam mi pokazać okno...

Pieter24
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 90
0

W klasie Timer masz metode schedule. Skorzystaj z tego rozwiazania, jest bardziej eleganckie. Przyklad: https://stackoverflow.com/questions/9375882/how-i-can-run-my-timertask-everyday-2-pm

dymul
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 182
1

while(CurrentTime==Time) ten warunek zawsze jest fałszywy więc pętla zawsze kończy się po jednym przebiegu. Rozwiązanie z posta powyżej na pewno będzie lepsze :)

XL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 58
0

A tak zadziała ?

Kopiuj
       do
        {
            CurrentTime = LocalTime.now();
        }
        while(CurrentTime.isBefore(Time));
S9
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 3573
1

Jezu, mylenie == z equals oO

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.