• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

ShowMessageDialog, zamknięcie komunikatu.

Object Storage Arubacloud
0 głosów
282 wizyt
pytanie zadane 17 stycznia 2017 w Java przez Przemyslaw Użytkownik (610 p.)

Witajcie. Mam następujący problem. Tworze program za pomocą GUI, który ma symulować obsługę klienta w salonie kosmetycznym. Stworzyłem sobie progressbary, które pokazują stan wykonania danej usługi. Chcę, aby po tym jak usługa się wykona, wyskoczyło okienko np."Wlosy gotowe". Użyłem odpowiedniej funkcji JOptionPane.showMessageDialog(). Pojawił się następny problem. Nie da się tego okienka co się pojawia zamknąć, wydaję mi się, że to dlatego że warunek jest cały czas spełniony, przedstawie to w kodzie na dole. Znalazłem funkcję System.exit(0), no i zamyka mi to okienko ale przy okazji zamyka mi też całą aplikację. Ma ktoś pomysł na to? Zastanawiałem się nad użyciem wyjątków i bloku try catch, jednak nie za bardzo mam pomysł jak to zaimplementować. 

t = new Timer(200, new ActionListener() {
            @Override
                public void actionPerformed(ActionEvent e) {
                count ++;
                WlosyProgressBar.setValue(count);
                 
                if(WlosyProgressBar.getValue()<100){
                            WlosyProgressBar.setValue(WlosyProgressBar.getValue()+1);
                 }
                 if(WlosyProgressBar.getValue()==100){
                            JOptionPane.showMessageDialog(null, "Wlosy wykonane!","Wlosy", JOptionPane.INFORMATION_MESSAGE);
                             System.exit(0);
                 }
                 }
                 });
                 t.start();

 

1
komentarz 17 stycznia 2017 przez Mateusz51 Nałogowiec (28,180 p.)
Prawdopodobnie nie możesz zamknąć bo co 200ms otwiera Ci się nowe okienko. A do zamykania okien możesz użyć dispose();
komentarz 17 stycznia 2017 przez Przemyslaw Użytkownik (610 p.)
Jak użyć tej metody? JFrame.dispose() nie zadziała, z racji tego, że ShowMessageDialog nie należy do JFrame.
1
komentarz 17 stycznia 2017 przez Mateusz51 Nałogowiec (28,180 p.)
używasz jej na oknie które chcesz zamknąć np frame.dispose();
komentarz 17 stycznia 2017 przez Przemyslaw Użytkownik (610 p.)
No tylko, że właśnie to nie jest okno które sam deklaruje.
1
komentarz 17 stycznia 2017 przez Mateusz51 Nałogowiec (28,180 p.)
Dialog powinien Ci się automatycznie zamknąć gdy klikniejsz ok.
komentarz 17 stycznia 2017 przez Przemyslaw Użytkownik (610 p.)
Zamyka się, ale po po ułamku sekundy dialog znowu się otwiera.
1
komentarz 17 stycznia 2017 przez Mateusz51 Nałogowiec (28,180 p.)
Tak jak napisałem Ci w komentarzu u góry. Co 200ms otwierać bedzie się nowy bo masz cały czas spełnionego ifa. Możesz zmienić wartosć tak aby nie był spełniony. mozesz zrobić t.stop(). Albo jeszcze coś bardziej karkołomnego.
komentarz 17 stycznia 2017 przez Przemyslaw Użytkownik (610 p.)
No i idealnie. t.stop() pomogło. Super! Dziękuję! :)
1
komentarz 17 stycznia 2017 przez Mateusz51 Nałogowiec (28,180 p.)
Powodzenia!

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 240 wizyt
pytanie zadane 4 lutego 2018 w JavaScript przez Yashe Dyskutant (7,720 p.)
0 głosów
1 odpowiedź 140 wizyt
pytanie zadane 7 stycznia 2018 w HTML i CSS przez Eliro Stary wyjadacz (12,160 p.)
+1 głos
1 odpowiedź 366 wizyt
pytanie zadane 20 sierpnia 2017 w Java przez SebekMakaron Obywatel (1,290 p.)

92,555 zapytań

141,402 odpowiedzi

319,538 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...