2013-04-14 22 views
0

我花了好幾個小時試圖用我的代碼研究問題,但我似乎無法找到它。我沒有使用CardLayout的經驗,但基於其他實例,我覺得我已經正確實施它。我正在開發使用擴展JPanel的自定義面板的2D遊戲。我知道我的面板工作,因爲我已經在其他驅動程序小程序中分別測試它們。每次運行我的Applet時,屏幕都是空白的。我很困惑,爲什麼會這樣。編譯時我沒有收到錯誤或警告。使用CardLayout的Applet是空的

這裏是我的小應用程序的代碼,任何幫助將不勝感激:

public class DodgeDefender extends JApplet 
    { 
     private final int WIDTH = 800, HEIGHT = 800; 
     private JPanel cardPanel; 
     private IntroScreen intro; 
     private MainGame main; 
     private CardLayout manager; 

     public void init() 
     { 
       setSize(WIDTH, HEIGHT); 

       cardPanel = new JPanel(); 
       manager = new CardLayout(); 
       cardPanel.setLayout(manager); 

       intro = new IntroScreen(); 
       main = new MainGame(); 

       cardPanel.add(intro, "IntroScreen"); 
       cardPanel.add(main, "MainGame"); 

       manager.show(cardPanel, "IntroScreen"); 

     } 

     public void mainGame() 
     { 
       manager.show(cardPanel, "MainGame"); 
     } 

    } 
+0

裏面是什麼MainGame和IntroScreen,莫比所述probem在這些類 – aymankoo

+0

爲了更好地幫助越早,張貼[SSCCE](http://sscce.org/)。 –

回答

1

您不要在CardPanel都添加到小程序,因此它不具有任何子組件顯示:

this.add(cardPanel); 
+0

謝謝JB Nizet。不幸的是,這並沒有解決我的問題。事實上,我的活動添加了: getContentPane()。add(cardPanel); 而這並沒有解決我的問題。 –

+0

然後張貼SSCCE,以便我們可以重現問題。 –

0

的問題是在這部分: -

cardPanel.add(intro, "IntroScreen"); 
cardPanel.add(main, "MainGame"); 

而應該試試這個: -

add(intro,"IntroScreen"); 
add(main,"MainGame");