首页 >Java >java教程 >为什么我的基于图块的益智游戏中的 JPanel 没有更新?

为什么我的基于图块的益智游戏中的 JPanel 没有更新?

Susan Sarandon
Susan Sarandon原创
2024-11-29 01:23:11343浏览

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn