如何刷新 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)。
所以在我的程序中,我在开始时为它设置了一个 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)。