GregorianCalendar nie odświeża czasu

0

Witam stworzyłem w ramach ćwiczeń zegar analogowy w którym korzystam z klasy GregorianCalendar w celu pobierania aktualnego czasu.
Problem polega na tym że niestety w momencie kompilacji programu pobiera czas a potem zgodnie z timerem (co sekundę) nie aktualizuje danych tylko non stop wyświetla ten sam czas.
Tak to wygląda:

GregorianCalendar kal=new GregorianCalendar();

to się wywołuję co sekundę w metodzie repaint: (sama metoda na pewno działa - co sekundę się wywołuje, sprawdziłem)

int sek=kal.get(kal.SECOND);
0

A czy pod debugerem faktycznie widzisz że liczba sekund sie nie zmienia?

0

Tak działają obiekty klasy GregorianCalendar - pamiętają datę ustawioną w chwili utworzenia. Twórz na nowo obiekt lub wywołuj metodę modyfikującą (add, roll, setTime).
Proponuje by przed każdym odrysowaniem zegara wykonać taki kod:

GregorianCalendar date = new GregorianCalendar();
int hours = date.get(Calendar.HOUR_OF_DAY)%12;
int minutes = date.get(Calendar.MINUTE);
int seconds = date.get(Calendar.SECOND);
0

Dzięki za szybką odpowiedź , rzeczywiście stworzyłem ten obiekt w konstruktorze, więc tylko przy uruchomieniu pobierał aktualną datę.

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