gpt4 book ai didi

java - removeAll() 卡住游戏

转载 作者:行者123 更新时间:2023-12-01 23:24:01 26 4
gpt4 key购买 nike

我在使用 Netbeans 制作的 Java 应用程序中遇到了奇怪的问题。这是一款内存卡游戏。主类是一个 JFrame,它保存相同大小的面板。面板通过网格布局进行分割,每个单元格都包含一张卡片,另一个类设计有一个小面板和一个标签。这就是设计。主类的源代码承担了游戏的许多功能,游戏结束时发生的一个功能是第三个 JDialog 类,它也必须重置整个棋盘,当该功能使用方法removeAll()时,就会出现错误。它执行removeAll(),但只有在用户调整 JFrame 大小后,结果才会显示在屏幕上。必须有其他方法来自动刷新面板。我是否必须阅读完整的 JavaWiki 才能找到答案?

谢谢

最佳答案

在删除或添加组件后,调用容器上的revalidate(),然后调用repaint()。如果它是 JFrame 的 contentPane,那么您需要对其调用这些方法。

JPanel panel = (JPanel) jFrame.getContentPane();
panel.removeAll();
panel.revalidate();
panel.repaint();
  • revalidate() 方法告诉容器的布局管理器重新布局包含的所有组件。
  • repaint() 方法向重绘管理器发送请求以重绘容器,从而消除窗口中的“脏”区域。

关于java - removeAll() 卡住游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20276773/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com