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

Odpowiedz Nowy wątek
2011-10-01 23:09
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.

Pozostało 580 znaków

2011-10-02 02:57
0
frame.validate()
frame.repaint()

?

Pozostało 580 znaków

2011-10-02 11:26
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.

Pozostało 580 znaków

2011-10-02 13:24
bo
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.

Pozostało 580 znaków

2011-10-02 15:56
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.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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