2012-08-29 87 views
3

我的應用程序由兩個JPanel組成,它們將是MainPanel上的卡片。代碼如下。出於某種原因,面板不會出現。我會是你的幫助:)爲什麼這些卡片不會出現在JPanel CardLayout上?

MainPanel.java非常感謝:

public class MainPanel extends JPanel{ 

    private final static String PANEL1 = "PANEL1"; 
    private final static String PANEL2 = "PANEL2"; 

    private static Panel1 panel1; 
    private static Panel2 panel2; 

    //private static CardLayout layout; 

    public MainPanel() { 

     super(new CardLayout()); 

     panel1 = new Panel1(); 
     panel2 = new Panel2(); 

     getLayout().addLayoutComponent(PANEL1, panel1); 
     getLayout().addLayoutComponent(PANEL2, panel2); 


     ((CardLayout) getLayout()).show(this, PANEL1); 
    } 

} 

Main.java:

public class Main { 

    private static JFrame window; 

    public static void main(String[] args) { 

     window = new JFrame(); 

     window.setContentPane(new MainPanel()); 
     window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     window.setSize(600,400); 
     window.setVisible(true); 
    } 

} 

回答

5

getLayout().addLayoutComponent(PANEL1, panel1); 
getLayout().addLayoutComponent(PANEL2, panel2); 

應是

add(panel1, PANEL1); 
add(panel2, PANEL2); 

欲瞭解更多信息,請參閱How to Use CardLayout

+1

哦,等等對不起,我誤解了。是的,這工作! –

+3

@ W.K.S,我指的是'JPanel#add'。 – mre