如何刷新JFrame?

时间:2015-02-07 18:26:19

标签: java jframe jlabel

所以在我的程序中,我在开始时设置了一个JLabel,所以现在它上面有一个图像。现在我需要删除那个JLabel并添加一个新的而不是它。所以我做了:

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

但是当我看时,它仍然是第一个图像,它不会更新,直到我手动调整实际窗口的大小。有没有办法更新框架,所以我不必这样做?

3 个答案:

答案 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)。