2012-02-21 43 views
1

所以我有一個面板,並根據用戶輸入他們填充了x個數量的jlabels。現在的問題是,當用戶輸入信息時,標籤成功填充,但在面板中不能正確顯示;他們甚至不顯示。JLabels不顯示

只有當我調整他們出現的框架?

+0

爲了更好地幫助sonner請用[SSCCE](http://sscce.org/)編輯您的問題,否則everrything會拍攝到黑暗 – mKorbel 2012-02-21 16:47:46

回答

1

這是一段時間,因爲我做了Swing編程,並且我試圖在添加組件後記住容器應該放置的方法。我認爲這是revalidate()

1

通常你必須調用:

JPanel yourPanel = new JPanel(); 
yourPanel.repaint(); 
yourPanel.validate(); 
0

invalidate標誌着一個組件爲需要因爲組件或它的一個子已經被調整到即將重新鋪設了或變得可見或不可見。當子組件被添加/移除時,在組件上自動調用invalidate

validate檢查容器是否有效,如果不是,則調用doLayout或invalidateTree來計算子組件的位置和大小。如有必要,validate會有效地重新佈置佈局,決定容器中所有組件的新尺寸和位置。

添加/刪除容器中的組件後,必須在父級上調用validate以讓LayoutManager重新進行佈局。調用validate不計劃重繪,因此您可能需要在validate之後撥打repaint