在Java中,当使用BorderLayout时,是否可以在CENTER中有两个面板,但两者都可以在窗体上看到。
这是我的代码:
guiFrame.add(guiFieldsPanel, BorderLayout.CENTER);
guiFrame.add(guiButtonsPanel, BorderLayout.CENTER);
guiFrame.setVisible(true);
在上面的代码中,两个面板都设置为中心,但我只能看到guiButtonsPanel,因为它位于guiFieldsPanel的“顶部”。
我可以将两个面板组合在一起,然后将它们设置为在CENTER中显示吗?
答案 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)
您需要创建一个包含guiFieldsPanel
和guiButtonsPanel
的中间面板,然后将其添加到边框布局中。
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);
根据centre
和guiFieldsPanel
的相对位置,您可以根据需要调整guiButtonsPanel
的布局。