我花了这么多时间尝试用我的代码研究问题,但我似乎无法找到它。我没有使用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");
}
}
答案 0 :(得分:1)
您没有将cardPanel添加到applet,因此它没有要显示的任何子组件:
this.add(cardPanel);
答案 1 :(得分:0)
问题出在这一部分: -
cardPanel.add(intro, "IntroScreen");
cardPanel.add(main, "MainGame");
你应该试试这个: -
add(intro,"IntroScreen");
add(main,"MainGame");