ホームページ > Java > &#&チュートリアル > タイルベースのパズル ゲームで JPanel が更新されないのはなぜですか?

タイルベースのパズル ゲームで JPanel が更新されないのはなぜですか?

Susan Sarandon
リリース: 2024-11-29 01:23:11
オリジナル
334 人が閲覧しました

Why Isn't My JPanel Updating in My Tile-Based Puzzle Game?

パズル ゲームで JPanel が更新されない

ランダムに配置されたタイルを使用するパズル ゲームで、画像の更新時にタイルをホストしている JPanel が更新されません。それに追加されました。この問題により、新しい画像が表示されなくなり、パズルがプレイできなくなります。

問題の理解

問題は、次の目的で使用される addComponents() メソッドにあります。 JPanelに画像を追加します。更新されたイメージがメソッドに渡されると、既存のコンポーネントは正しく削除されますが、JPanel の適切な再検証と再描画は失敗します。この結果、新しいイメージが表示されなくなります。

解決策

問題を解決するには、addComponents() メソッドを修正して、必要な再検証と再描画の手順を含める必要があります。 。以下の更新されたコードは、JPanel が新しいイメージで更新されることを保証します。

public void addComponents(Img[] im){
    this.removeAll();
    for(int i=0; i<16; i++){
        im[i].addActionListener(this);
        im[i].setPreferredSize(new Dimension(53,53));
        add(im[i]);
    }
    this.revalidate();

    **Repaint the JPanel to display the updated images**
    this.repaint();
}
ログイン後にコピー

この変更により、addComponents() メソッドは既存のイメージを正しく削除し、新しいイメージを追加し、JPanel を再検証し、再描画します。更新されたタイルでそれを表示します。パズル ゲームは適切に機能し、JPanel に新しい画像が表示されるはずです。

以上がタイルベースのパズル ゲームで JPanel が更新されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート