3

我正在开发一个用户登录的小游戏。登录后,您将能够进入主菜单。我正在使用不工作的 CardLayout。有一些包含面板名称的最终字符串。我已经调试了一段时间,我确定可以到达这段代码。欢迎任何提示。谢谢!

/*
 * showPanel()
 * Method to switch to a different panel
 * @author Rick Slinkman
 */
public void showPanel(String newPanel) 
{
    game.setCurrentPanel(newPanel);
    cardLayout.show(mainpanel, newPanel);
    revalidate();
    repaint();
}
4

2 回答 2

4

唯一出错的是我没有重新验证持有卡片的 JPanel。这就是解决方案!感谢大家努力帮助我。

/*
 * showPanel()
 * Method to switch to a different panel
 * @author Rick Slinkman
 */
public void showPanel(String newPanel) 
{
        game.setCurrentPanel(newPanel);
    this.cardLayout = (CardLayout) cards.getLayout();
    cardLayout.show(cards, "" + newPanel);
    cards.revalidate();
}
于 2012-08-10T20:29:54.920 回答
0

如果您调用此方法,您的代码在任何地方都不需要 repaint() Swing 将在看到布局更改时重新绘制布局,删除方法调用 repaint。

于 2012-08-10T20:12:49.723 回答