Переключение между JPanels

Я пытаюсь сделать игру. В игре несколько разных экранов, таких как главное меню и фактический экран игры. Каждый из них является отдельным расширением jpanel. Я добавил каждого из них в свой JFrame, который называется классом Game. В моем классе игры у меня есть следующие методы

public void addPanel( JPanel p ) {
    panels.add( p ); // An array of all the different panels I need
    this.getContentPane().add( p );
}

public void switchToPanel( JPanel p ) {
    for ( JPanel somePanel : panels ) {
        somePanel.setVisible( false );
    }

    p.setVisible( true );
    repaint();
}

Дело в том, что у меня много разных панелей, и когда мне нужно показать конкретную панель, например экран меню, я вызываю switchToPanel (myPanel). В основном, просто скрывая каждую панель, а затем скрывая ту, которую мне нужно увидеть. Единственная проблема заключается в том, что эти панели не отображаются, когда я переключаюсь на них. Единственное, что когда-либо появится, это панель, которую я добавил последней. В Задаче C я использую эту технику для постоянного переключения между представлениями, и у меня никогда не было проблем. Разве это не разрешено в Java?

Изменить: теперь я вызываю repaint () после переключения, но он все еще не работает

Ответы на вопрос(3)

Ваш ответ на вопрос