2013-05-12 51 views
0

在Java中,使用BorderLayout时,是否可以在CENTER中有两个面板,但都可以在窗体上可见。带两个面板的Java布局中心

这里是我的代码:

guiFrame.add(guiFieldsPanel, BorderLayout.CENTER); 
    guiFrame.add(guiButtonsPanel, BorderLayout.CENTER);   
    guiFrame.setVisible(true); 

在上面的代码,无论是面板设置在中央,但我只能看到guiButtonsPanel,因为它是“在最前”的guiFieldsPanel的。

我可以将两个面板组合在一起,然后将它们设置为显示在CENTER中?

+0

'默认BorderLayout',只允许一个单一的部件驻留内的任何其5个可用位置。如果您尝试将另一个组件添加到占用的位置,那么您实际上是从组件中删除了以前的组件(它实际上并未被移除,它只是没有布局,但结果是相同的......) – MadProgrammer 2013-05-12 07:08:37

回答

1

您将需要创建一个包含guiFieldsPanelguiButtonsPanel的中间面板,然后将其添加到边框布局。

final JPanel centre = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0)); 
centre.add(guiFieldsPanel); 
centre.add(guiButtonsPanel); 

guiFrame.add(centre, BorderLayout.CENTER); 
guiFrame.setVisible(true); 

可以相对于guiFieldsPanelguiButtonsPanel相对定位调整centre适当布局满足您的需求。

3

请参阅Nested Layout Example了解如何将合并为布局以创建所需的布局。例如。

也许使用单行GridLayout为中心。

guiFrame.add(guiFieldsPanel, BorderLayout.CENTER); 
guiFrame.add(guiButtonsPanel, BorderLayout.CENTER);   

但是,这提出了一种2列GroupLayout中所见this answer。例如。