0

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

这是我的小程序的代码,任何帮助将不胜感激:

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

   }
4

2 回答 2

1

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

this.add(cardPanel);
于 2013-04-14T06:42:45.707 回答
0

问题出在这部分:-

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

你应该试试这个: -

add(intro,"IntroScreen");
add(main,"MainGame");
于 2014-11-25T17:11:36.057 回答