所以在我的程序中,我在開始時設置了一個JLabel,所以現在有一個圖像。現在我需要刪除該JLabel並將其替換爲新的。所以我做:如何刷新JFrame?
frame.remove(test_loadingJL);
frame.add(test_lockScreenJL);
但是,當我看,它仍然是第一形象,它不更新,直到我手動調整實際窗口。有沒有更新框架的方法,所以我不必那樣做?
所以在我的程序中,我在開始時設置了一個JLabel,所以現在有一個圖像。現在我需要刪除該JLabel並將其替換爲新的。所以我做:如何刷新JFrame?
frame.remove(test_loadingJL);
frame.add(test_lockScreenJL);
但是,當我看,它仍然是第一形象,它不更新,直到我手動調整實際窗口。有沒有更新框架的方法,所以我不必那樣做?
這應該工作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
還要檢查這個環節possible dublicate question 同樣的問題here
這些應該工作
嘗試調用frame.setVisible(真)在添加組件之前。
感謝這個人幫了我很多! – 2015-02-07 18:43:48