Java removeAll()冻结游戏

Java removeAll()冻结游戏,java,swing,jframe,jpanel,removeall,Java,Swing,Jframe,Jpanel,Removeall,我在一个用Netbeans开发的Java应用程序中遇到了一个奇怪的问题。 这是一个记忆卡游戏。 主类是一个JFrame,它持有相同大小的面板。面板用网格布局进行细分,每个单元都有一张卡片,另一个类设计有一个小面板和一个标签。 这就是设计。 main类的源为游戏提供了许多函数,第三个JDialog类在游戏结束时出现的函数也必须重置整个棋盘,当函数使用removeAll()方法时,会出现错误。它确实执行removeAll(),但结果只有在用户调整JFrame的大小后才会显示在屏幕上。必须有其他方法自

我在一个用Netbeans开发的Java应用程序中遇到了一个奇怪的问题。 这是一个记忆卡游戏。 主类是一个JFrame,它持有相同大小的面板。面板用网格布局进行细分,每个单元都有一张卡片,另一个类设计有一个小面板和一个标签。 这就是设计。 main类的源为游戏提供了许多函数,第三个JDialog类在游戏结束时出现的函数也必须重置整个棋盘,当函数使用removeAll()方法时,会出现错误。它确实执行removeAll(),但结果只有在用户调整JFrame的大小后才会显示在屏幕上。必须有其他方法自动刷新面板。我需要阅读完整的JavaWiki才能找到答案吗

感谢您

调用
重新验证()
,然后在移除或添加组件后在容器上重新绘制()。如果是JFrame的contentPane,则需要在其上调用这些方法

JPanel panel = (JPanel) jFrame.getContentPane();
panel.removeAll();
panel.revalidate();
panel.repaint();
  • revalidate()
    方法告诉容器的布局管理器重新布局包含的所有组件
  • repaint()
    方法向重新绘制管理器发送一个请求,以重新绘制容器,该容器将清除窗口中的“脏”区域
调用
重新验证()
,然后在移除或添加组件后在容器上重新绘制()。如果是JFrame的contentPane,则需要在其上调用这些方法

JPanel panel = (JPanel) jFrame.getContentPane();
panel.removeAll();
panel.revalidate();
panel.repaint();
  • revalidate()
    方法告诉容器的布局管理器重新布局包含的所有组件
  • repaint()
    方法向重新绘制管理器发送一个请求,以重新绘制容器,该容器将清除窗口中的“脏”区域
调用
重新验证()
,然后在移除或添加组件后在容器上重新绘制()。如果是JFrame的contentPane,则需要在其上调用这些方法

JPanel panel = (JPanel) jFrame.getContentPane();
panel.removeAll();
panel.revalidate();
panel.repaint();
  • revalidate()
    方法告诉容器的布局管理器重新布局包含的所有组件
  • repaint()
    方法向重新绘制管理器发送一个请求,以重新绘制容器,该容器将清除窗口中的“脏”区域
调用
重新验证()
,然后在移除或添加组件后在容器上重新绘制()。如果是JFrame的contentPane,则需要在其上调用这些方法

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

对于一个空间中的多个组件,请使用如图所示的a。对于一个空间中的多个组件,请使用如图所示的a。对于一个空间中的多个组件,请使用如图所示的a。抱歉,我不知道您的答案。这让它像铃声一样响!谢谢。对不起,我没早点知道你的答案。这让它像铃声一样响!谢谢。对不起,我没早点知道你的答案。这让它像铃声一样响!谢谢。对不起,我没早点知道你的答案。这让它像铃声一样响!非常感谢。