Я пытаюсь сделать игру. В игре есть несколько разных экранов, таких как главное меню и собственно игровой экран. Каждое из них является отдельным расширением 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). В основном просто скрываю каждую панель, а затем отображаю ту, которую мне нужно увидеть. Единственная проблема в том, что эти панели не отображаются, когда я переключаюсь на них. Единственное, что когда-либо появится, это панель, которую я добавил последней. В Objective C я постоянно использую эту технику для переключения между представлениями, и у меня никогда не было проблем. Такие вещи не разрешены в java?
Редактировать: теперь я вызываю repaint() после переключения, но он все еще не работает