3

我的应用程序由两个JPanels 组成,它们将是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); 
    }

}

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

}
4

1 回答 1

6

这个

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

应该

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

有关详细信息,请参阅如何使用 CardLayout

于 2012-08-29T17:52:13.927 回答