Przełączanie pomiędzy 2 obiektami JFrame
Przełączanie pomiędzy 2 obiektami JFrame
Witam na forum!
Googluje od wczoraj, jest do dość popularne pytanie ale nigdzie nie moge znalezc jasnej odpowiedzi popartej przykladem, a widzialem tkaich tematow kilkanascie. Najpopularniejsza odpowiedz to zeby do konstruktora jednej z klas przekazac referencję do drugiego okna. Niby z javy nie jestem zielony, ale jakos nie do konca rozumiem o co chodzi. Moglby ktos wytlumaczyc mi to na przykladzie?
Mam program, w nim kilka plikow. Dwa sa istotne: Glowne.java oraz Logowanie.java. Main jest w Logowanie.java, jest tam listener do przycisku zaloguj ktory ma otwierac okno glowne. To jeszcze dziala, ustawiam setVisible(false) na okno logowania i tworze nowy obiekt frame, jest ok. Problem pojawia sie gdy w oknie glownym mam przycisk wyloguj, do niego listenera. Chce tam ustawic setVisible(false) dla glownego a true dla okna logowania (nie moge tworzyc nowych obiektow, poniewaz zalezy mi na danych wprowadzonych w oknie glownym). Niestety obiekt klasy Logowanie jest niedostepny, nawet okno glowne ma problem z ukryciem, dostaje blad java.lang.NullPointerException tak jakby odwolywalo sie do nowego pustego obiektu Glowne, a nie tego utworzonego w Logowanie.java.
Bede bardzo wdzieczy za pomoc, siedze nad tym problemem juz drugi dzien...
Googluje od wczoraj, jest do dość popularne pytanie ale nigdzie nie moge znalezc jasnej odpowiedzi popartej przykladem, a widzialem tkaich tematow kilkanascie. Najpopularniejsza odpowiedz to zeby do konstruktora jednej z klas przekazac referencję do drugiego okna. Niby z javy nie jestem zielony, ale jakos nie do konca rozumiem o co chodzi. Moglby ktos wytlumaczyc mi to na przykladzie?
Mam program, w nim kilka plikow. Dwa sa istotne: Glowne.java oraz Logowanie.java. Main jest w Logowanie.java, jest tam listener do przycisku zaloguj ktory ma otwierac okno glowne. To jeszcze dziala, ustawiam setVisible(false) na okno logowania i tworze nowy obiekt frame, jest ok. Problem pojawia sie gdy w oknie glownym mam przycisk wyloguj, do niego listenera. Chce tam ustawic setVisible(false) dla glownego a true dla okna logowania (nie moge tworzyc nowych obiektow, poniewaz zalezy mi na danych wprowadzonych w oknie glownym). Niestety obiekt klasy Logowanie jest niedostepny, nawet okno glowne ma problem z ukryciem, dostaje blad java.lang.NullPointerException tak jakby odwolywalo sie do nowego pustego obiektu Glowne, a nie tego utworzonego w Logowanie.java.
Bede bardzo wdzieczy za pomoc, siedze nad tym problemem juz drugi dzien...
Re: Przełączanie pomiędzy 2 obiektami JFrame
Kod, kod i jeszcze raz kod
Daj na wklej.org

Re: Przełączanie pomiędzy 2 obiektami JFrame
http://wklej.org/id/920789/
http://wklej.org/id/920792/
To moj pierwszy wiekszy projekt przy uzyciu swinga, takze chetnie poslucham uwag
http://wklej.org/id/920792/
To moj pierwszy wiekszy projekt przy uzyciu swinga, takze chetnie poslucham uwag

Re: Przełączanie pomiędzy 2 obiektami JFrame
Dzieje się tak ponieważ oknoGlowne stworzone w ZalogujListener nie istnieje wcale w pliku gdzie masz klasę "Glowne". Odwołujesz się do czegoś czego nie ma. Stworzyłeś to lokalnie. W WylogujListener nie ma wcale takiego obiektu.Nie podałeś mi całości więc nie jestem pewien, ale według mnie tam powinno być this.setVisible(false); Ewentualnie posprzątać całkowicie po tym this.dispose();.
Czy oglądałeś 16 lekcje video kursu tworzenie aplikacji w javie?
Czy oglądałeś 16 lekcje video kursu tworzenie aplikacji w javie?
Re: Przełączanie pomiędzy 2 obiektami JFrame
Jeszcze nie obejrzalem bo narazie matme musze ogarnac, ale mam jakiestam podstawy, przeczytalem head first java.
Z tym lokalnie utworzonym oknoGlowne to bardzo sluszna uwaga, tylko nie bardzo wiem jak utworzyc te obiekty tak aby byly widoczne w obu plikach. O ile sie nie myle dispose() wyczysci mi oknoGlowne, a ja chce je tylko chwilowo ukryc.
Podalem najwazniejsze pliki, 2 pozostale sa bez znaczenia, w jednym jest klasa Ksiazka w drugim klasa Student (nie wiem czy wogle tworze taki obiekt, to na przyszlosc)
Tu reszta:
http://wklej.org/id/920875/
http://wklej.org/id/920876/
Z tym lokalnie utworzonym oknoGlowne to bardzo sluszna uwaga, tylko nie bardzo wiem jak utworzyc te obiekty tak aby byly widoczne w obu plikach. O ile sie nie myle dispose() wyczysci mi oknoGlowne, a ja chce je tylko chwilowo ukryc.
Podalem najwazniejsze pliki, 2 pozostale sa bez znaczenia, w jednym jest klasa Ksiazka w drugim klasa Student (nie wiem czy wogle tworze taki obiekt, to na przyszlosc)
Tu reszta:
http://wklej.org/id/920875/
http://wklej.org/id/920876/
Re: Przełączanie pomiędzy 2 obiektami JFrame
Oglądnij najpierw tą lekcję, jak to zrobisz to pogadamy dalej, jeśli będziesz miał problem.
Re: Przełączanie pomiędzy 2 obiektami JFrame
Ok, obejrzalem lekcje. Nie rozwiazala ona mojego problemu, ale pomogla mi sprezycowac pytanie. W lekcji 16 jest przedstawione otwieranie nowych okienek, ale te nowe okienka sie tylko zamyka, tyle potrafie zrobic. Chodzi mi o to zeby w tych nowych okienkach byl dostep do okna glownego. Oto kod stworzony na potrzeby pytania:
http://wklej.org/id/921206/
http://wklej.org/id/921207/
1. Po kliknieciu 'otworz' chcialbym ukryc oknoGlowne i pokazac oknoLogowania. Po kliknieciu 'zamknij' w oknieLogowania chcialbym ukryc oknoLogowania i przywrocic oknoGlowne ze zmieniona etykieta(wazne! nie chce tworzyc nowego obiektu).
2. Czy w pliku Inne musi byc main? Od uruchomienia jest Glowne a Inne tworzy obiekty przez konstruktor.
3. windowBuilder w eclipse domyslnie tworzy obiekty w konstruktorach, zebym widzial obiekt w listenerze musze kopiowac deklaracje poza konstruktor. Da sie cos z tym zrobic?
Z gory dzieki z pomoc!
http://wklej.org/id/921206/
http://wklej.org/id/921207/
1. Po kliknieciu 'otworz' chcialbym ukryc oknoGlowne i pokazac oknoLogowania. Po kliknieciu 'zamknij' w oknieLogowania chcialbym ukryc oknoLogowania i przywrocic oknoGlowne ze zmieniona etykieta(wazne! nie chce tworzyc nowego obiektu).
2. Czy w pliku Inne musi byc main? Od uruchomienia jest Glowne a Inne tworzy obiekty przez konstruktor.
3. windowBuilder w eclipse domyslnie tworzy obiekty w konstruktorach, zebym widzial obiekt w listenerze musze kopiowac deklaracje poza konstruktor. Da sie cos z tym zrobic?
Z gory dzieki z pomoc!
Re: Przełączanie pomiędzy 2 obiektami JFrame
Tworząc obiekt Inne przekaż obiekt głównej ramki jako jeden z argumentów w konstruktorze z klasy Inne. Zmodyfikuj klasę Inne, aby miała odpowiedni konstruktor przyjmujący taki argument oraz stwórz odpowiednią zmienną przechowującą główną ramkę.
Re: Przełączanie pomiędzy 2 obiektami JFrame
Sam tego nie ogarne, prawie 3h juz nad tym siedze, mam kisiel zamiast mozgu.
http://wklej.org/id/921661/
http://wklej.org/id/921662/
Na ta chwile dziala polowicznie, tzn udaje mu sie przekazac Glowne 'frame' jako argument, ale jakos jeszcze musze przekazac oknoLogowania z pliku Glowne. Myslalem ze jak stworze zmienna static to bede ja widzial w calym pakiecie i nie bedzie problemu a tu takie kuku.
http://wklej.org/id/921661/
http://wklej.org/id/921662/
Na ta chwile dziala polowicznie, tzn udaje mu sie przekazac Glowne 'frame' jako argument, ale jakos jeszcze musze przekazac oknoLogowania z pliku Glowne. Myslalem ze jak stworze zmienna static to bede ja widzial w calym pakiecie i nie bedzie problemu a tu takie kuku.
Re: Przełączanie pomiędzy 2 obiektami JFrame
hmm..jakby sie tak zastanowic to dziala, ale na odwrot ;]