2013-07-11 79 views
1

我的問題很簡單,但我想知道是否可以使用GridBagLayout這樣做。請注意,使用另一種佈局可能會更容易,但我的目標是這樣做。如何在GridBagLayout中製作固定寬度的單元格

所以基本上我想知道是否有一個方法來有一個固定寬度的列? (所以,如果我把這個細胞長或短的標籤內,它不會改變它的寬度)

+1

我不這麼認爲,任何給定列的大小是由其中組件的大小或約束的結果決定的,可以變化 – MadProgrammer

+1

使用FlowLayout將JLabel放入JPanel中。設置(JLabel)JPanel的首選大小。使用GridBagLayout將JPanel放入JPanel內部。 –

+0

@Gilbert Le Blanc Thanx,但老實說,它不能很好地工作,因爲'setPreferredSize()'方法需要關於高度的信息,我沒有在調用它時使用。行爲不是很穩定,當窗口被調整大小(縮小)時,大小會發生變化,並且不再適合所提供的數據。我猜'setPreferredSize()'不是一個好主意...... –

回答

2

你可以試着重寫GridBagLayout's方法

protected GridBagLayoutInfo GetLayoutInfo(Container parent, int sizeflag) 

只需致電超級改變public int columnWidths[]陣列場更新所需的寬度。

+0

+1,從來沒有想過要在「佈局」中深入。有趣的方法:-) –

+0

嗨,thanx的技巧,但我沒有設法做你的建議。我知道你可能會覺得它很煩人,但是你能否提供一個實現你的解決方案的具體代碼。我試過了,但是我有一個錯誤信息... –

相關問題