Java布局中心有两个面板

时间:2013-05-12 06:15:32

标签: java swing jpanel layout-manager border-layout

在Java中,当使用BorderLayout时,是否可以在CENTER中有两个面板,但两者都可以在窗体上看到。

这是我的代码:

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

在上面的代码中,两个面板都设置为中心,但我只能看到guiButtonsPanel,因为它位于guiFieldsPanel的“顶部”。

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

2 个答案:

答案 0 :(得分:4)

有关如何合并布局以创建所需布局的建议,请参阅Nested Layout Example。 E.G。

或许可以使用单行GridLayout作为中心。

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

但是,这表明this answer中有一列GroupLayout。 E.G。

答案 1 :(得分: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);

根据centreguiFieldsPanel的相对位置,您可以根据需要调整guiButtonsPanel的布局。