Zmiana zawartości okna

0

Mam okno JFrame z JPanel i JMenu stworzone w NB. Do tego w osobnym pliku obiekt JPanel z innym komponentami, które chciałbym wyświetlić po kliknięciu w element w menu. Niby proste, ale...

private void jMenu1ActionPerformed(java.awt.event.ActionEvent evt) {
       nowy_panel panel = new nowy_panel();
       this.jPanel1.add(panel);
}

Próbowałem również do tego dodawać:

this.validate();
this.repaint();

Ale to nic nie daje. Proszę o pomoc, już nie mogę 2 projektu ukończyć, z tego powodu

0

http://4programmers.net/Forum/viewtopic.php?id=136478&sid=a0a669a6d283f980a1983c3868337dec

mialem podobny problem, moze w kodzie znajdziesz rozwiazanie.

0

Najkrócej pisząc...

JPanel panelOkna = getContentPane(); //zmienna pomocnicza
//usuwa dotychczasową zawartość okna (wszystkie panele i komponenty w części roboczej)
panelOkna.removeAll(); //można też za pomocą remove() usunąć poprzednio dodany panel
panelOkna.add(panel); //dodaje Twój nowy panel
pack(); //dla okna ewentualnie validate() bez zmiany rozmiarów
0

A czy można wyświetlić nowe okno po kliknięciu w jakiś guzik w panelu przez events mouseclicked?
A czy jak chce wyświetlić nowe okno to trzeba utworzyć nowy pliczek z zawartością tego okna?
A i jeszcze jedno, nie bardzo wiem gdzie użyć kodu który jest powyżej....

0
klimi napisał(a)

A czy można wyświetlić nowe okno po kliknięciu w jakiś guzik w panelu przez events mouseclicked?

hmyyyy...nie lepiej to będzie zrobić za pomocą ActionListener ?

klimi napisał(a)

A czy jak chce wyświetlić nowe okno to trzeba utworzyć nowy pliczek z zawartością tego okna?

Zależy jakie okno, jak jakieś okienko potwierdzające (JOptionPane), to nie, a jak jakies bardziej rozbudowane to tworzysz nową klasę i dziedziczysz po JDialog.

klimi napisał(a)

A i jeszcze jedno, nie bardzo wiem gdzie użyć kodu który jest powyżej....

W actionPerformed raczej to wrzuć...

Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0