为什么这些卡片没有出现在JPanel CardLayout上?

时间:2012-08-29 17:49:13

标签: java swing jpanel cardlayout

我的应用程序包含两个JPanel,它们将成为MainPanel上的卡片。代码如下。出于某种原因,面板不会出现。我非常感谢你的帮助:)。

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);
    }

}

1 个答案:

答案 0 :(得分:5)

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

应该是

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

有关详细信息,请参阅How to Use CardLayout