Odliczanie litrów w stacji benzynowej

0

Witam wszystkich. Zabrałem się właśnie za program o nazwie stacja benzynowa. Jestem początkujący i mam takowy problem. Cała aplikacja jest w swingu posiada 5 przycisków odpowiednio start, stop, on, pb, gaz. Nie mam pojęcia jaką akcje przypisać do przycisku start aby po jego kliknięciu ilość litrów(wyświetlana na etykiecie) zaczęła się zwiększać na bieżąco. Proszę o jakieś propozycje zastanawiałem się nad pętlą for a w niej sleep().

0

sleep() w pętli for zablokuje główny wątek aplikacji, czyli aplikacja się przywiesi na czas podany w metodzie sleep().
Musisz skorzystać z drugiego wątku do zwiększania ilości litrów na etykiecie, tylko trzeba to zrobić tak żeby przy każdym kliknięciu nie tworzyć kolejnego wątku.
Ewentualnie z timera jak kolega wyżej napisał.

0
bakeraw2 napisał(a):

Musisz skorzystać z drugiego wątku do zwiększania ilości litrów na etykiecie, tylko trzeba to zrobić tak żeby przy każdym kliknięciu nie tworzyć kolejnego wątku.
Ewentualnie z timera jak kolega wyżej napisał.

Mógłbyś bardziej sprecyzować ? Bo jak wspomniałem jestem początkujący i nie bardzo ogarniam o co kaman w wątkach o których wspomniałeś.

0

Poczytaj:
http://javastart.pl/zaawansowane-programowanie/watki-wprowadzenie-i-przyklad/

Generalnie chodzi o to, że metoda sleep() przywiesi działanie aplikacji, ponieważ przywieszasz główny wątek aplikacji. Jeśli skorzystasz z timera lub z drugiego wątku to będziesz miał główny wątek oraz wątek który co jakiś czas będzie zmieniał wartości na etykiecie. Dzięki temu aplikacja nie będzie się przywieszała na czas usypiania.

0

możesz ewentualnie użyć SwingWorker'a który nie przywiesi Ci Twojej aplikacji a pozwoli na dodanie metody sleep() (w Twoim nowym wątku w SwingWorkerze) jeżeli już tak bardzo chcesz

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