使用CardLayout的Applet是空白的

时间:2013-04-14 06:37:28

标签: java swing jpanel cardlayout

我花了这么多时间尝试用我的代码研究问题,但我似乎无法找到它。我没有使用CardLayout的经验,但基于其他实例,我觉得我已经正确实现了它。我正在使用扩展JPanel的自定义面板开发2D游戏。我知道我的面板工作,因为我已经在其他驱动程序小程序中单独测试它们。每次运行Applet时,屏幕都是空白的。我很困惑为什么会这样。编译时我没有错误或警告。

以下是我的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");
        }

   }

2 个答案:

答案 0 :(得分:1)

您没有将cardPanel添加到applet,因此它没有要显示的任何子组件:

this.add(cardPanel);

答案 1 :(得分:0)

问题出在这一部分: -

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

你应该试试这个: -

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