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