2012-12-02 35 views
0

您好,請參閱附件圖像,我編寫的接口有三個JPanel,我使用的是GridBagLayout,我已經閱讀了一些很好的教程並獲得了一些理解,但我需要您的指導2 JPanels像給定的圖片一樣並排。GridBagLayout中有1個以上的JPanel

例如,如果我這樣做frame.add(leftpanel);再有就是在JFrame中只有一個面板..如何對齊留在JFrame的一半,這樣,當我做frame.add(panelright);它被添加到正確的SID,

請指導我做的PIC中顯示的功能,enter image description here

我能處理1個JPanel並所有的組件,但不知道緊靠處理大於1,

+0

*「將它左對齊JFrame的一半」* ***準確地說是***一半?如果是這樣,左/右面板將需要一個'GridLayout'。然後,您可以將該面板放置在BorderLayout的'CENTER'中,底部放在'PAGE_END'中。 –

回答

3

我覺得你的情況BorderLayout將更加有用。嘗試閱讀關於它here

在這種情況下,您可以將面板在東南偏南或中心處添加,比GridBag好得多。

+0

以及如果我必須在每個JPanel中添加5-6個組件,這對我來說並不那麼容易,並且在GridBagLayout中很容易,請指導我添加2個JPandles或反饋任何資源,因爲我無法找到它(對於兩個JPanel) –

+0

是的,您可以通過在中心或其他側面佈局中添加另一個邊界佈局來實現。 – Fyre

2

您需要使用GridBagConstraints指定位置和其他設置。 例如,你可以做這樣的事情:

GridBagConstraints constraints = new GridBagConstraints(); 
constraints.gridx = 0; 
constraints.gridy = 0; 
constraints.fill = GridBagConstraints.BOTH; 

frame.add(leftPanel, constraints); 
constraints.gridx = 1; 
frame.add(panelright, constraints); 

constraints.gridx = 0; 
constraints.gridy = 1; 
constraints.gridwidth = 2; 
frame.add(bottomPanel, constraints); 

GridBagConstraints.gridx和GridBagConstraints.gridy確定該元素的行和列。填充告訴佈局在水平和垂直方向上使用所有可用空間。 如果你想設置一個單元格將使用相對於其他單元格具有一定比例的空間,則可以使用weightx和weighty字段。

+0

frame.add(leftPanel,constraints);它會生成錯誤panel1.add(buttton1,constraints);這個工作,但方式相同 –

+0

我修復了代碼中的一些錯誤。它產生了什麼錯誤?我假設你使用GridBagLayout將JFrame的contentPane設置爲JPanel,對吧? –

2

還考慮兩個JSplitPane實例。最外面的窗格在頂部和底部之間將具有VERTICAL_SPLIT。外部窗格的頂部將包含另一個JSplitPane,在左側和右側之間具有HORIZONTAL_SPLIT

相關問題