Java GridBagLayout列宽、行高、列权重和行权重

Java GridBagLayout列宽、行高、列权重和行权重,java,swing,layout-manager,gridbaglayout,Java,Swing,Layout Manager,Gridbaglayout,我试图学习使用gridbaglayout,但问题是,在更改代码后,我仍然不明白新的int[]{}对于.columnwidths和.rowHeights意味着什么,而新的double[]{}对于.columnWeights和.rowWeights意味着什么。有人能举个例子解释一下它是如何工作的吗?比如如何确定在新int{}和新double[]{}中设置的数字 import java.awt.Color; import java.awt.GridBagConstraints;

我试图学习使用gridbaglayout,但问题是,在更改代码后,我仍然不明白新的int[]{}对于.columnwidths和.rowHeights意味着什么,而新的double[]{}对于.columnWeights和.rowWeights意味着什么。有人能举个例子解释一下它是如何工作的吗?比如如何确定在新int{}和新double[]{}中设置的数字

    import java.awt.Color;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.UIManager;

    public class UI extends JPanel {

        private JPanel clickMePanel,panel_1,panel_2;
        private JButton button;

        public UI() {
            try {
                UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            } catch (Exception e) {
                e.printStackTrace();
            }

            GridBagLayout gridBagLayout = new GridBagLayout();
            gridBagLayout.columnWidths = new int[]{0, 0};
            gridBagLayout.rowHeights = new int[]{0, 0};
            gridBagLayout.columnWeights = new double[]{1.0, Double.MIN_VALUE};
            gridBagLayout.rowWeights = new double[]{0.0, 1.0, Double.MIN_VALUE};
            setLayout(gridBagLayout);

            clickMePanel = new JPanel();

            clickMePanel.setBackground(Color.BLACK);
            GridBagConstraints gbcClickMePanel = new GridBagConstraints();
            gbcClickMePanel.fill = GridBagConstraints.BOTH;
            gbcClickMePanel.gridx = 0;
            gbcClickMePanel.gridy = 0;
            add(clickMePanel, gbcClickMePanel);
            GridBagLayout gbl_panel = new GridBagLayout();
            gbl_panel.columnWidths = new int[]{0,0};
            gbl_panel.rowHeights = new int[]{0,0};
            gbl_panel.columnWeights = new double[]{0.0, 0.0, 1.0, Double.MIN_VALUE};
            gbl_panel.rowWeights = new double[]{0.0, Double.MIN_VALUE};
            clickMePanel.setLayout(gbl_panel);

            button = new JButton("button");
            GridBagConstraints gbcBtn = new GridBagConstraints();
            gbcBtn.gridx = 0;
            gbcBtn.gridy = 0;
            clickMePanel.add(button, gbcBtn);

        }

        public static void main(String args[]){
            JFrame frame = new JFrame();
            frame.getContentPane().add(new UI());
            frame.pack();
            frame.setSize(600, 400);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setVisible(true);
        }
    }

“有人能举个例子来解释它是如何工作的吗?”所以这不是一个教程网站,而是一个问答网站,在这里最好问一个具体的(但不要太宽泛)问题。我建议在你最喜欢的搜索引擎中插入“如何使用X”,这里的X是“GridBagLayout”。投票关闭。数组中的每个元素都是一个列或行索引(单元格)。哦,还有15年了,我从来没有这样用过;)@那么我是不是错误地使用了gridbaglayout?我不会说你用错了,只是我从来没有这样使用过,而是使用
GridBagConstraints
来确定每个组件的单个约束。对我来说,它们更易于使用和管理,但这就是我。有关更多详细信息,请参阅1。我在第一节中使用了jlabel数组。行(GBC严格来说是关于列的),然后创建矩阵,GUI的其余部分是关于列和行的,==MigLayout或TableLayout 2。加上一个用于SSCCE/MCVE,3。但投票也要结束