Java GridBagLayout函数(如gridwidth/height和gridx/y)如何工作以缩放GUI的大小?

Java GridBagLayout函数(如gridwidth/height和gridx/y)如何工作以缩放GUI的大小?,java,swing,layout-manager,gridbaglayout,gridx,Java,Swing,Layout Manager,Gridbaglayout,Gridx,我最近被介绍到GridBagLayout来代替vanilla JPanel布局,但是我在使用gridwidth/height和gridx/y等函数时遇到了问题。我不确定它们在改变GUI的大小和按钮的位置时是如何工作的。下面是我的教授给我的一段代码供我参考,我试着摆弄一些数字,但结果从来没有像我预期的那样,我也不知道为什么 编辑1:为了澄清,我想知道gridwidth、gridheight、gridx和gridy函数是如何调整GUI大小和按钮位置的 import java.awt.*; impor

我最近被介绍到GridBagLayout来代替vanilla JPanel布局,但是我在使用gridwidth/height和gridx/y等函数时遇到了问题。我不确定它们在改变GUI的大小和按钮的位置时是如何工作的。下面是我的教授给我的一段代码供我参考,我试着摆弄一些数字,但结果从来没有像我预期的那样,我也不知道为什么

编辑1:为了澄清,我想知道gridwidth、gridheight、gridx和gridy函数是如何调整GUI大小和按钮位置的

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

class Bar1 {

    public static void main(String[] args) {
        JFrame frame = new JFrame();
        JPanel panel = new JPanel();
        panel.setLayout(new GridBagLayout());
        GridBagConstraints c = new GridBagConstraints();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        c.gridx=0;
        c.gridy=0;
        c.gridwidth=2;
        c.gridheight=1;
        c.weightx = 2;
        c.weighty = 1;
        c.fill = GridBagConstraints.BOTH;
        JButton b = new JButton("Hello");
        panel.add(b, c);
        c.gridx=0;
        c.gridy=1;
        c.gridwidth=1;
        c.gridheight=1;
        JButton b2 = new JButton("World");
        panel.add(b2, c);
        c.gridx=1;
        c.gridy=1;
        c.gridwidth=1;
        c.gridheight=1;
        JButton b3 = new JButton("!!!");
        panel.add(b3, c);

        frame.add(panel);
        frame.pack();
        frame.setVisible(true);

    }
}

但是结果从来没有像我预期的那样
——我们也不是读心术的人。我们不知道你期望发生什么。阅读上Swing教程中的部分,了解所有约束条件的解释和一个工作示例。您就得到了答案。本教程解释了约束是如何工作的。您在上一个问题()中还获得了指向教程的链接。所以请阅读教程。如果您在本教程中有不理解的地方,请提出具体问题。我们不知道您的代码需要做什么,也不知道您从教程中发现了什么让人困惑。
gridwidth
gridheight
确定组件可以占用的单元格数量
gridx
gridy
确定组件在何处开始的单元格这与教程中的解释不同
为了澄清,我想知道gridwidth、gridheight、gridx和gridy函数如何调整GUI的大小和按钮的位置。
-教程中的哪一部分您不理解?您在第一行中指定了一个组件,该组件占用2个单元格,在第二行中指定了两个组件,每个组件占用一个单元格。关于你的代码,你还不了解什么?@DavidL,
。。。懒得阅读已经制作好的指南
——完全正确。因此,请向我们证明,当您获得链接时,您确实阅读了教程<代码>我就是不能理解它。-所以请引用你不理解的句子,然后我们可以扩展它。我们猜不出什么措词使你困惑。我仍然看不出教程解释和Mad解释之间的区别,特别是当你看到你发布的代码和结果的布局时。你期望发生什么不同的事情?