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

Czyszczenie okna GUI Java

Object Storage Arubacloud
0 głosów
1,140 wizyt
pytanie zadane 23 grudnia 2015 w Java przez pulpet112 Użytkownik (760 p.)
Witam!

Mój problem wydaje się być banalny i na pewno każdy, kto ma jakiekolwiek doświadczenie w tworzeniu aplikacji okienkowych, wie jak to zrobić. Niestety ja nie wiem  ;)

Chodzi o to, że w głownym oknie programu coś się wyświetla. Konkretnie jest to logowanie ( jakieś dwie dane oraz przycisk Zaloguj). Chciałbym do przycisku Zaloguj dodać zdarzenie, które wyczyści mi całe okienko i wstawi tam nowe obiekty, które widać dopiero po zalogowaniu.

W skrócie chodzi o to, że wiem jak np. dodać do przycisku Zaloguj zdarzenie, które otworzy mi nowe okno (wyglad tego okna sobie wczesniej tworze tak samo jak okno główne). I teraz jedyne co chcę się dowiedzieć, to co mam zrobić, aby wszystko to wykonało się dokładnie tak samo ALE W TYM SAMYM OKNIE.

Sama koncepcja jest chyba oczywista - każda aplikacja tak działa. Gdy wchodzimy sobie w nowe funkcjonalnosci programu to nie otwiera nam się za każdym razem nowe okno, tylko to okno głowne się czyści i na to miejsce wchodzą nowe rzeczy. I to jest właśnie efekt, który chcę uzyskać.

Z góry bardzo serdecznie dziękuję za pomoc

Pozdrawiam!

1 odpowiedź

+1 głos
odpowiedź 23 grudnia 2015 przez Javowiec Pasjonat (21,560 p.)
wybrane 23 grudnia 2015 przez pulpet112
 
Najlepsza

Stwórz dwa panele, jeden z komponentami logowania, drugi z tym co ma być po zalogowaniu i wyświetlaj je poprzez CardLayout:

https://docs.oracle.com/javase/tutorial/uiswing/layout/card.html

http://docs.oracle.com/javase/7/docs/api/java/awt/CardLayout.html

Tylko jeden panel w danym czasie jest wyświetlony w oknie głównym.

komentarz 23 grudnia 2015 przez pulpet112 Użytkownik (760 p.)
hmm jest to jakieś rozwiazanie oczywiscie ale chodzilo mi o znacznie szersze ujęcie tego aspektu. Nie zalezy mi na tym aby uporac sie tylko z logowaniem. Chcialbym moc czyscic i wrzucac nowa zawartosc do glownego okna np 1000 razy i co wtedy?

Jak ten problem jest naprawde rozwiazywany we wszystkich aplikacjach?
komentarz 23 grudnia 2015 przez Javowiec Pasjonat (21,560 p.)
Jaką zawartość? 1000 paneli? To stwórz 1000 paneli i do buttonów, które mają je wyświetlać przypisz zdarzenie wyświetlenia danego panelu, który chcesz. Jeden znika, drugi się pojawia - czyli główne okno się czyści i wyświetla to co chcesz.
komentarz 23 grudnia 2015 przez Javowiec Pasjonat (21,560 p.)

Coś takiego zaimplementowałem w swojej małej aplikacji:

https://github.com/MarcinPrzygoda/Repetition-Master

Buttonem przechodzę do innego panelu, ale w tym samym głównym oknie.

komentarz 23 grudnia 2015 przez pulpet112 Użytkownik (760 p.)
I tak faktycznie się robi w profesjoalnych aplikacjach?

Jesli tak by to mialo wygladac to potrzebowalbym jeszcze, żeby nagłówki tych kard byly schowane. Da sie tak?
komentarz 23 grudnia 2015 przez Javowiec Pasjonat (21,560 p.)

Nie wiem jak się to robi w profesjonalnych aplikacjach, ale szukałem odpowiedzi na stackoverflow i w każdym pytaniu o to padała odpowiedź: CardLayout. Można to robić jeszcze ręcznie, ale nie wiem czemu by nie korzystać z rzeczy, które do tego zostały stworzone:

http://stackoverflow.com/questions/13799227/add-remove-panel-on-jframe-runtime

http://stackoverflow.com/questions/2487658/how-do-i-remove-an-old-jpanel-and-add-a-new-one

http://stackoverflow.com/questions/13110094/how-do-i-hide-the-current-jpanel-and-show-a-new-one-with-a-button-in-java

I nie wiem o jakich nagłówkach mówisz. Wygląd panelu definiujesz sobie sam.

komentarz 23 grudnia 2015 przez pulpet112 Użytkownik (760 p.)
Super juz wszystko ogarniam ;) Musiałem to w praktyce przetestowac. Nie wiem czy to bedzie do konca dzialac ale jak na razie jest dokladnie tak jak chcialem.

Dziękuję bardzo

Podobne pytania

0 głosów
1 odpowiedź 702 wizyt
0 głosów
1 odpowiedź 127 wizyt
pytanie zadane 28 czerwca 2020 w Java przez manager96 Bywalec (2,050 p.)
0 głosów
1 odpowiedź 335 wizyt
pytanie zadane 24 maja 2020 w Java przez zdridox Nowicjusz (210 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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!

...