2016-04-28 67 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