Zwischen JPanels wechseln
Ich versuche ein Spiel zu machen. Es gibt verschiedene Bildschirme im Spiel, z. B. ein Hauptmenü und den eigentlichen Spielbildschirm. Jede dieser Erweiterungen ist eine separate Jpanel-Erweiterung. Ich habe jeden von ihnen zu meinem JFrame hinzugefügt, der eine Klasse namens Game ist. In meiner Spielklasse habe ich folgende Methoden
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();
}
Der Punkt dabei ist, dass ich viele verschiedene Panels habe und wenn ich ein bestimmtes Panel anzeigen muss, wie zum Beispiel einen Menübildschirm, rufe ich switchToPanel (myPanel) auf. Im Grunde einfach jedes Panel verstecken und dann das einblenden, das ich sehen muss. Das einzige Problem ist, dass diese Panels nicht angezeigt werden, wenn ich zu ihnen wechsle. Das einzige, das jemals auftauchen wird, ist das Panel, das ich zuletzt hinzugefügt habe. In Objective C verwende ich diese Technik, um die ganze Zeit zwischen Ansichten zu wechseln, und ich hatte nie Probleme. Ist so etwas in Java nicht erlaubt?
Bearbeiten: jetzt rufe ich repaint () nach dem Umschalten auf, aber es funktioniert immer noch nicht