2012-01-11 67 views
4

我知道一個事實,即當我創建一個JComponent的實例時,它具有它自己的首選大小。現在讓我們假設我手動設置了JComponent,其維度爲0 x 0。我希望該組件能夠「重置」它自己的preferredSize。我怎麼做?如何重新計算JComponent的首選大小?

+0

你在啓動時或之後設置尺寸/對某些事件? – 2012-01-11 07:06:07

+0

爲什麼你將首選大小設置爲0x0? 'setVisible(false)'可能是你需要的效果。 – 2012-01-11 07:17:03

+0

@Andrew在我的情況下,layoutManager根據組件的preferredSize設置它的空間。所以如果我只是setVisible(false)組件空白空間仍然可見,因此我需要setPreferredSize組件。但在其他事件中,我需要將其preferredSize設置回原始。 – William 2012-01-11 07:21:52

回答

8

1)將首選大小設置爲空值應將組件重置爲重新計算其首選大小,就好像它從未設置一樣。

component.setPreferredSize(null); 

這可能不是你想要做什麼,取決於你如何信號的佈局應重做 - 但至少在技術上是回答你的問題。

2)通常建議不使用了setPreferredSize,看到this post

+0

技術上正確+1 – mKorbel 2012-01-11 10:35:30

+0

啊!你是救生員。謝啦!我應該先閱讀文檔。問題是佈局管理器需要我指定首選大小,因爲它需要它來計算空間。 – William 2012-01-11 14:10:26