私はゲームを作ろうとしています。ゲームには、メインメニューや実際のゲーム画面など、いくつかの異なる画面があります。これらはそれぞれ個別のjpanel拡張機能です。GameというクラスであるJFrameにそれぞれを追加しました。私のゲームクラスでは、次のメソッドがあります
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 CIでは、この手法を使用して常にビューを切り替えますが、問題は発生していません。この種のことはJavaでは許可されていませんか?
編集:切り替え後にrepaint()を呼び出していますが、まだ機能していません