Swing BorderLayout:按钮之间没有space,没有中心间隙

Swing BorderLayout: Make no space between buttons, no center gap

我有这个代码:

import javax.swing.*;
import java.awt.*;

public class Test extends JFrame {
    public Test()  {
        JPanel panel = new JPanel();

        JButton leftButton = new JButton("Left");
        JButton rightButton = new JButton("Right");
        JButton bottomButton  = new JButton("Bottom");

        Container container = getContentPane();
        container.add(leftButton, BorderLayout.LINE_START);
        container.add(rightButton, BorderLayout.LINE_END);
        container.add(bottomButton, BorderLayout.PAGE_END);

        pack();
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        Test test = new Test();
    }
}

当我运行它时,它显示:

然而,当我调整它的大小时 window:

如何让按钮占据 windows 的 100%,像这样:

我试过这样做:

import javax.swing.*;
import java.awt.*;

public class Test extends JFrame {
    public Test()  {
        JPanel panel = new JPanel();

        JButton leftButton = new JButton("Left");
        JButton rightButton = new JButton("Right");
        JButton bottomButton  = new JButton("Bottom");

        panel.add(leftButton);
        panel.add(rightButton);

        Container container = getContentPane();
      //  container.add(leftButton, BorderLayout.LINE_START);
        //container.add(rightButton, BorderLayout.LINE_END);
        container.add(panel, BorderLayout.CENTER);
        container.add(bottomButton, BorderLayout.PAGE_END);

        pack();
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        Test test = new Test();
    }
}

但效果更差:

我也试过:

container.add(new JLabel(""), BorderLayout.CENTER);

但它给出了原始结果。

此布局可以通过使用 GridLayout(绿色)作为按钮,在 BorderLayout(红色)作为主 GUI 的 CENTER 中轻松实现。