我花了很多时间试图研究我的代码问题,但似乎还是找不到。我没有使用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");
        }

   }

最佳答案

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

this.add(cardPanel);

09-11 20:23