2010-03-06 54 views
0

我已經創建了n個JPanel,並且在每個JPanel中添加了3個組件。我將這些JPanel作爲行添加到新的JPanel中。 n個JPanel的佈局是FlowLayout,主面板是BorderLayout。 setPreferredSize()方法對於我在n個JPanel中添加的組件而言工作正常,但它不適用於n個JPanel。我想要npanels [i] .setPrefferedSize(新維(300,25)) 我想JPanel的高度等於其中添加的組件的高度(這是25)。 是否有約束,高度的JPanel應該是一些最小值? 請幫我嘗試了很多東西,但沒有工作.....爲什麼setPrefferedSize()方法不適用於JPanel?

回答

1

一些佈局管理器往往忽視了尺寸設置...

讀的地方,BorderLayout的可能往往忽視了對widthNORTHSOUTH組件, heightEASTWEST, 都heightwidthCENTER被忽略......

可能是這種情況?

此外,你可以提供一個截圖或圖解釋發生了什麼?

+0

添加屏幕截圖給我5分鐘 – stillStudent 2010-03-06 06:03:54

+0

但我無法找到任何選項來添加圖像... 你能幫我嗎? – stillStudent 2010-03-06 06:10:13

+0

「圖像」圖標看起來像一張圖片;它是從左邊第六個;另請參閱http://stackoverflow.com/editing-help – trashgod 2010-03-06 17:32:09

1

的setPrefferedSize()方法是用於部件

工作正常通常沒有必要設置一個優選的大小的部件。 Swing會自動計算首選大小。

佈局對於n JPanels是FlowLayout中... 我在正JPanels增加了,但它 不工作當n JPanels

同樣,也沒有必要設置的首選大小每個面板。大小將根據所有組件的首選大小自動計算。

主面板是BorderLayout

這是沒有意義的,因爲你不能添加「N」面板的BorderLayout的。您只能在北部,中部和南部添加一個組件,因此最多可以有3個不同的垂直顯示面板。在這種情況下,如果使用frame.pack(),則每個面板都將以其首選大小顯示。另一方面,如果使用frame.setSize(300,400),則中心面板的高度將被拉伸。

既然看起來你想要所有面板的大小相同,你可能應該使用GridLayout,否則你可以試試BoxLayout。閱讀Swing教程。它解釋了使用佈局管理器的所有信息。

如果您需要更多幫助,請發送您的SSCCE

相關問題