2014-10-06 53 views
0

我知道這可以做到,因爲我在一年前設法做到了這一點,但從那時起我不必這樣做。無論如何,我想要做的是當一個按鈕被點擊時,它會在已有的applet上創建一個新的applet;有點像舊的閃光電子遊戲。我幾乎可以肯定它使用了諸如revalidate()或repaint()之類的方法,但我仍然無法使其工作。另外,我將容器設置爲全局變量,所以我可以在actionPerformed方法中對其進行編輯。更新容器以顯示新的JApplet

public void actionPerformed(ActionEvent e) 
    { 
     if(e.getSource() == about) 
     { 
     c.removeAll(); 
     About a = new About(); 
     c.add(a); 
     c.revalidate(); 
     } 
     else if(e.getSource() == start_game) 
     System.out.println("Start - Coming Soon"); 
     else if(e.getSource() == highscores) 
     System.out.println("HighScores - Coming Soon"); 
    } 

我知道問題在actionPerformed方法中,但不知道我在做什麼錯誤。我試圖做的是從當前容器中刪除所有內容,添加About(這也是一個JApplet),並重新驗證/重繪它(兩種方法都不起作用)。

如果任何人有JApplet中的任何專業知識或知道這個問題,我將不勝感激任何迴應。

+0

改爲使用'CardLayout'。 – 2014-10-07 17:07:14

回答

0

我真的明白了,謝天謝地。我在正確的軌道上,但我試圖添加一個JApplet到容器而不是內容面板。我用這個

 About a = new About(); 
    getContentPane().removeAll(); 
    a.init(); 
    getContentPane().add(a); 
    getContentPane().revalidate();