パズル ゲームで 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 サイトの他の関連記事を参照してください。