Zmiana paneli w kontenerze frame

0

Witam
Mam następujący problem: w kontenerze typu frame chciałbym podmieniać 2 panele. Do każdego panelu są dodane inne komponenty, każdy jest tworzony oddzielnie. Obecnie staram się to zrobić za pomocą comboBoxa przez wybranie odpowiedniego pola i obsłużenie tego w ActionListenerze. Widziałem podobny problem w innym wątku i zrobiłem to następująco:

    private void changePanels()
    {
        if (floorChoice == 0)
        {
            this.getContentPane().remove(mainPanel2);
            this.getContentPane().add(mainPanel);
        }
        if (floorChoice == 1) 
        {
            this.getContentPane().remove(mainPanel);
            this.getContentPane().add(mainPanel2);
        }
    }

Metoda znajduje się w klasie dziedziczącej z JFrame. Jednak po wyborze innego pola w comboBoxie nic się nie dzieje. Tzn. panel staje się nieaktywny (jego komponenty są nieaktywne). Prosiłbym o jakąś sugestię co może być nie tak.

1

Po podmianie panelu dopdaj jeszcze

validate();
repaint();
0

Uczymy się czytaj dokumentacje do JDK. Prosto z javadoców awt.Container:

#add(...)
Note: If a component has been added to a container that has been displayed, validate must be called on that container to display the new component. If multiple components are being added, you can improve efficiency by calling validate only once, after all the components have been added.

Do I need to add something more ??

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