2016-04-28 68 views
0

我有一個BorderLayout正在進行,並且正在北面板上工作。在北面板內部,我想要有3個組件:左側的圖片和兩個將Frame的剩餘寬度分開的按鈕。現在我試圖用另一個BorderLayout來完成這個。使按鈕分離JPanel - Java Swing

Frame可調整大小。

圖片被分配到BorderLayout.WEST,並使用以下代碼嘗試添加另一個僅包含按鈕的面板。面板然後被添加到FrameNORTH佈局組件的CENTER

//create panel to hold buttons 
JPanel btnPanel = new JPanel(); 
btnPanel.setLayout(new BorderLayout()); 

JButton btnMatrix = new JButton("Matrix View"); 
btnPanel.add(btnMatrix); 
JButton btnList = new JButton("List View"); 
btnPanel.add(btnList); 
add(btnPanel); 

但是,按鈕都嘗試佔據整個面板。如果我將其保留爲流佈局(在上面的代碼中我沒有使用btnPanel.setLayout(new BorderLayout());),則按鈕位於中心位置,但不會展開和共享btnPanel

想法?我對Java的新足以讓我從一開始就以錯誤的方式進行討論。

回答

3
btnPanel.setLayout(new BorderLayout()); 

當您將按鈕添加到面板時,您沒有指定約束。所以這兩個按鈕都被添加到CENTER中。但是,只有一個組件可以添加到CENTER中,因此只顯示最後添加的組件。

你可以嘗試不同的佈局:

btnPanel.setLayout(new GridLayout(0, 2)); 

然後每個按鈕將是相同的大小和兩個按鈕將填充可用空間。

+0

完美工作。感謝您的及時回覆! – corbfon