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().
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ł.
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ś.
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.
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