首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >removeAll()冻结游戏

removeAll()冻结游戏
EN

Stack Overflow用户
提问于 2013-11-29 00:45:28
回答 1查看 995关注 0票数 0

在用Netbeans制作的Java应用程序中,有一个奇怪的问题。这是一个记忆卡游戏。主类是一个JFrame,它持有相同大小的à面板。该小组被细分为一个网格布局,每个单元格持有卡,另一个类设计了小面板和à标签。那是设计用的。主类的源包含游戏的许多函数,以及游戏结束时发生的函数,第三个JDialog类也必须重置整个板,当函数使用removeAll()方法时,就会出现Bug。它执行removeAll(),但结果仅在用户调整JFrame大小后才会出现在屏幕上。必须有其他方法来自动刷新面板。我需要阅读完整的JavaWiki才能找到答案吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-11-29 00:48:53

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

代码语言:javascript
复制
JPanel panel = (JPanel) jFrame.getContentPane();
panel.removeAll();
panel.revalidate();
panel.repaint();
  • revalidate()方法告诉容器的布局管理器重新布局所有包含的组件。
  • repaint()方法向重绘管理器发送一个请求,以重新绘制容器,该容器应该删除窗口中的“脏”区域。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20276773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档