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

ShowMessageDialog, zamknięcie komunikatu.

0 głosów
509 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ź 299 wizyt
pytanie zadane 4 lutego 2018 w JavaScript przez Yashe Dyskutant (7,720 p.)
0 głosów
1 odpowiedź 200 wizyt
pytanie zadane 7 stycznia 2018 w HTML i CSS przez Eliro Stary wyjadacz (12,160 p.)
+1 głos
1 odpowiedź 707 wizyt
pytanie zadane 20 sierpnia 2017 w Java przez SebekMakaron Obywatel (1,290 p.)

93,425 zapytań

142,421 odpowiedzi

322,647 komentarzy

62,787 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...