我已經附加其下述Border
傳說適用截圖:嵌套JPanels和GridBagLayout的不是 「包裝」 組件
黃色= JPanel
與BorderLayout
藍= JPanel
與GridBagLayout
紫紅色= JPanel
與FlowLayout
有兩個面板沒有被擋在顏色的warr螞蟻提及:
1)顯示單詞「主要」的標題面板;此面板在「黃色」面板中的BorderLayout.NORTH
。
2)設備圖像所在的圖像面板;這個面板是同級「倒掛金鐘」
「藍色」是在BorderLayout.CENTER
在「黃」,而「倒掛金鐘」和圖像面板給出下列約束條件:
GridBagConstraints c = new GridBagConstraints();
c.weightx = 1.0;
c.weighty = 1.0;
c.gridx = 0;
c.gridy = 0;
c.anchor = GridBagConstraints.NORTHWEST;
c.insets = new Insets(0, 10, 0, 0);
c.fill = GridBagConstraints.BOTH;
//"Blue".add(imagePanel, c);
c.weighty = 0.80;
c.gridy = 1;
c.fill = GridBagConstraints.HORIZONTAL;
//"Blue".add("Fuchsia", c);
作爲你可以從圖像中發現,我試圖擺脫「紫紅色」下方「藍色」中的「浪費」空間。我似乎不能用GridBagConstraints
這樣做,所以我只是使用了錯誤的LayoutManager
?在我看來,像「藍色」,誰在CENTER
在BorderLayout
只是給每個孩子JPanel
一半的可用空間和保留剩餘空間,而不是向上收縮。我在這裏錯過了什麼?這是否只是在「Fuchsia」上設置首選或最大尺寸的問題?它似乎不會讓我想要成爲我想去的地方,因爲圍繞「Fuchsia」(我的顏色編碼)覆蓋的邊界就是我希望組件結束的地方。
假如你試圖使用'C .fill = GridBagConstraints.BOTH/c.fill = GridBagConstraints.VERTICAL;',而不是o f'c.fill = GridBagConstraints.HORIZONTAL;'?或者你是否明確地爲代碼中的任何地方的'JFrame/JPanel'定義了任何大小? –
@nIcEcOw代碼中沒有明確的大小定義。我會盡快嘗試填寫建議。 –
我認爲這是你的黃色'JFrame'的父級佈局管理器。哪一個?我的[測試代碼](http://pastebin.com/PeM98u1t)顯示了所需的行爲。你介意發佈[SSCCE](http://pscode.org/sscce.html)嗎? – Howard