首頁 > Java > java教程 > 為什麼我的基於圖塊的益智遊戲中的 JPanel 沒有更新?

為什麼我的基於圖塊的益智遊戲中的 JPanel 沒有更新?

Susan Sarandon
發布: 2024-11-29 01:23:11
原創
362 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板