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 に答える