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

Przełączanie paneli - problem z odświeżaniem
M9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
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.

Kerai
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: London
0
Kopiuj
frame.validate()
frame.repaint()

?

M9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
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ą :/

Kopiuj
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.

  • Rejestracja: dni
  • Ostatnio: dni
0

Robię to tak (podmiana panelu w obszarze CENTER)

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

i działa dobrze.

M9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.