Java:GridBagLayout 相邻 x 网格之间不需要的间距

Java: GridBagLayout unwanted spacing between adjacent x grids

我有这个 GUI

我使用了 GridBagLayout,但我不知道为什么 Plain Bread 复选框和它对应的标签之间有很大的间距。

而且,我尝试只为按钮增加沿 x 轴的间距,但尽管重置了插图,但它沿 x 轴上的所有组件都增加了(但 Plain 之间的复选框之间的间距在为按钮设置插图之前,面包和标签已经存在)。

代码如下:

 public Bakery(){
    super("Bakery Bread Option");

    setLayout(new FlowLayout());
    panel.setLayout(new GridBagLayout());
    add(panel);

    GridBagConstraints gbc= new GridBagConstraints();

    gbc.insets= new Insets(4,4,4,4);

    gbc.gridx=0;
    gbc.gridy=0;
    panel.add(option_Title, gbc);


    gbc.gridx=0;
    gbc.gridy=1;
    panel.add(check_Plain, gbc);

    gbc.gridx=0;
    gbc.gridy=2;
    panel.add(qty_Plain, gbc);

    gbc.gridx=0;
    gbc.gridy=3;
    panel.add(qty_Brown, gbc);

    gbc.insets= new Insets(0,175,0,0);

    gbc.gridx=0;
    gbc.gridy=4;
    panel.add(calc_Btn, gbc);

    gbc.insets= new Insets(4,4,4,4);

    gbc.gridx=1;
    gbc.gridy=1;
    panel.add(plain_Bread, gbc);


    gbc.gridx=1;
    gbc.gridy=2;
    panel.add(qtyPlainText, gbc);

    gbc.gridx=1;
    gbc.gridy=3;
    panel.add(qtyBrownText, gbc);

    gbc.gridx=2;
    gbc.gridy=1;
    panel.add(check_Brown, gbc);

    gbc.gridx=3;
    gbc.gridy=1;
    panel.add(brown_Bread, gbc);


    calc_Amt calc_Handler= new calc_Amt();
    calc_Btn.addActionListener(calc_Handler);

}

编辑:

这是我打算实现的GUI:

there is a huge spacing between the Plain Bread checkbox and its corresponding label.

因为组件被添加到不同的列中。

列的宽度由列中最大组件的宽度决定。所以文本组件决定了列的宽度,而不是标签。

如果想让label/check框在一起,可以创建一个JPanel,将两个组件添加到面板中。然后将面板添加到gridbaglayout。

或者您可以让两个文本字段使用 2 的 columnWidth,这意味着它们将跨越两列。