Przełączanie paneli - problem z odświeżaniem

0

Piszę program, w którym jest sporo różnych paneli i następuje przełączanie między nimi, niektóre ładuję na początku, niektóre są ładowane w locie, gdy są potrzebne. Z tymi drugimi mam problem.
Jest sytuacja taka, że mam 1 Panel dodany do Frame, w nim tabelę z danymi.
Po kliknięciu na dany wiersz tworzony jest nowy panel i w nim nowa tabela.
Teraz ukrywam stary panel, a do ramki dodaję nowy (z nową tabelą), wywołuję pack() w ramce, ale nowy panel się nie pojawia - dopiero, gdy kliknę na tabelę elementy zaczynają się pokazywać.
O czym zapomniałem? Próbowałem odświeżyć również elementy przez revalidate. wywołując to na nowym panelu teoretycznie powinna nadać się "aktualność" również wszystkim komponentom nadrzędnym, ale to również nie pomogło.

0
frame.validate()
frame.repaint()

?

0

Niestety nic z tego, próbowałem już chyba wszystko wywoływać na różnych obiektach, a tabela i tak pojawia się dopiero po kliknięciu na nią :/

JPanel panel = new SingleWpPanel(wordpress);  //nowy panel z tabelką
jframe.add(panel, BorderLayout.CENTER);
panel.revalidate();
panel.repaint();
jframe.pack();
jframe.validate();
jframe.repaint();

Spróbuję to dodawać do panelu z cardlayoutem zamiast od razu do ramki, ale gdyby ktoś wpadł na pomysł, jak to jednak rozwiązać bez tego to też by było przydatne.

0

Robię to tak (podmiana panelu w obszarze CENTER)

       remove(niepotrzebny_panel_z_centrum);
       add(nowy_panel,BorderLayout.CENTER);
       validate();
       repaint();

i działa dobrze.

0

Eh, mój głupi błąd. Panel z tabelką jest opakowany jeszcze w jeden panel zarządzający rozkładem i usuwałem nie to co trzeba :) Teraz śmiga.

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