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中文网其他相关文章!