1

我想如图所示排列组件。我可以通过使用 gridbaglayout 来做到这一点,但我想使用 borderlayout 来做到这一点。我尝试过,但无法达到我想要的效果。所以请在这里指导我。这里的黑色矩形是 JPanel、Button 等组件。

在此处输入图像描述

4

2 回答 2

4

如果你只想用BorderLayout来做,你需要使用2个BorderLayout。如果您不能使用 2 个布局,那么您将被 GridBagLayout 困住。这是我所说的演示:

import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class Test {

    protected void initUI() {
        JFrame frame = new JFrame("test");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panel = new JPanel(new BorderLayout());
        JPanel panel2 = new JPanel(new BorderLayout());
        panel2.add(new JButton("NORTH"), BorderLayout.NORTH);
        panel2.add(new JButton("CENTER"));
        panel.add(panel2);
        panel.add(new JButton("SOUTH"), BorderLayout.SOUTH);
        panel.add(new JButton("EAST"), BorderLayout.EAST);
        frame.add(panel);
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                new Test().initUI();
            }
        });
    }
}

例子

于 2012-05-15T10:58:54.943 回答
3

边框布局不是这样工作的。这是边框布局示意图:

在此处输入图像描述

您将无法将 EAST 布局放置在右上角 - NORTH 将始终浮动到右侧。

编辑:显示自从我使用 Swing 或 AWT 以来已经有多久了 - 当我使用时,它是 EAST、NORTH、WEST、SOUTH 和 CENTER。

于 2012-05-15T10:39:06.247 回答