如何刷新 JFrame?

How to refresh a JFrame?

所以在我的程序中,我在开始时为它设置了一个 JLabel,所以现在上面有一个图像。现在我需要删除那个 JLabel 并放一个新的代替它。所以我做了:

frame.remove(test_loadingJL);
frame.add(test_lockScreenJL);

但是当我查看时,它仍然是第一张图片,并且在我手动调整实际 window 大小之前它不会更新。有没有办法更新框架,这样我就不必这样做了?

这应该有效 frame.revalidate()

您的选择:

 1.SwingUtilities.updateComponentTreeUI(name of Component(in your example is frame)

SwingUtilities.updateComponentTreeUI(frame);

2.frame.dispose();

frame.setVisible(true);

3.revalidate();

  revalidate();//<------------needed when add/remove components
  repaint();//sometimes needed also, sometimes not

同时检查这个 link possible dublicate question 同样的问题here

这些应该有用

尝试在添加组件之前调用 frame.setVisible(true)。