所以在我的程序中,我在开始时设置了一个JLabel,所以现在它上面有一个图像。现在我需要删除那个JLabel并添加一个新的而不是它。所以我做了:
frame.remove(test_loadingJL);
frame.add(test_lockScreenJL);
但是当我看时,它仍然是第一个图像,它不会更新,直到我手动调整实际窗口的大小。有没有办法更新框架,所以我不必这样做?
答案 0 :(得分:0)
这应该有效frame.revalidate()
答案 1 :(得分:0)
您的选择:
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
同时查看此链接possible dublicate question 同样的问题here
这些应该可行
答案 2 :(得分:0)
在添加组件之前尝试调用frame.setVisible(true)。