我的問題很簡單,但我想知道是否可以使用GridBagLayout
這樣做。請注意,使用另一種佈局可能會更容易,但我的目標是這樣做。如何在GridBagLayout中製作固定寬度的單元格
所以基本上我想知道是否有一個方法來有一個固定寬度的列? (所以,如果我把這個細胞長或短的標籤內,它不會改變它的寬度)
我的問題很簡單,但我想知道是否可以使用GridBagLayout
這樣做。請注意,使用另一種佈局可能會更容易,但我的目標是這樣做。如何在GridBagLayout中製作固定寬度的單元格
所以基本上我想知道是否有一個方法來有一個固定寬度的列? (所以,如果我把這個細胞長或短的標籤內,它不會改變它的寬度)
你可以試着重寫GridBagLayout's
方法
protected GridBagLayoutInfo GetLayoutInfo(Container parent, int sizeflag)
只需致電超級改變public int columnWidths[]
陣列場更新所需的寬度。
+1,從來沒有想過要在「佈局」中深入。有趣的方法:-) –
嗨,thanx的技巧,但我沒有設法做你的建議。我知道你可能會覺得它很煩人,但是你能否提供一個實現你的解決方案的具體代碼。我試過了,但是我有一個錯誤信息... –
我不這麼認爲,任何給定列的大小是由其中組件的大小或約束的結果決定的,可以變化 – MadProgrammer
使用FlowLayout將JLabel放入JPanel中。設置(JLabel)JPanel的首選大小。使用GridBagLayout將JPanel放入JPanel內部。 –
@Gilbert Le Blanc Thanx,但老實說,它不能很好地工作,因爲'setPreferredSize()'方法需要關於高度的信息,我沒有在調用它時使用。行爲不是很穩定,當窗口被調整大小(縮小)時,大小會發生變化,並且不再適合所提供的數據。我猜'setPreferredSize()'不是一個好主意...... –