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

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

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:

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 2000, to mam mi pokazać okno...

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

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 :)

0

A tak zadziała ?

       do
        {
            CurrentTime = LocalTime.now();
        }
        while(CurrentTime.isBefore(Time));
1

Jezu, mylenie == z equals oO

1 użytkowników online, w tym zalogowanych: 0, gości: 1