java - 网格布局列

标签 java swing layout-manager grid-layout

我最近决定开始使用 GridLayout,因为 FlowLayout 看起来有点业余。但是,我需要帮助。创建GridLayout时的参数为(行、列、行间距、列间距)。我有一个变量表示行数,4 个变量表示列数,但是当我尝试在其他所有内容之后添加 JButton 时,有 5 列。 这是我的代码:

byte i = 0;
    while(i < main.componentNum)
    {
        comp[i] = new JLabel("component #" + (i+1));
        box[i] = new JComboBox();
        field[i] = new JTextField(5);
        edit[i] = new JButton("edit");

        comp[i].setBackground(Color.WHITE);
        box[i].setBackground(Color.WHITE);
        field[i].setBackground(Color.WHITE);
        edit[i].setBackground(Color.WHITE);

        add(comp[i]);
        add(box[i]);
        add(field[i]);
        add(edit[i]);

        i++;
    }

当我运行上面的代码时,我得到四列,它工作正常。但是当我在末尾添加一个按钮时,我得到了五个。谁能告诉我如何给一个按钮一整行?

最佳答案

来自 Java 文档

One, but not both, of rows and cols can be zero, which means that any number of objects can be placed in a row or in a column.

现在,如果没有您的实际代码来设置 GridLayout,很难说,但是,如果您只维护 4 列,我会创建一个 GridLayout 作为接下来,new GridLayout(0, 4)

如果您想要更灵活的东西,请查看GridBagLayout

关于java - 网格布局列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13324807/

相关文章:

java - @Value 注释未正确设置

java - 如何以秒为单位获取当前的 UTC 时间戳

java - 将 java 程序的所有输出重定向到日志文件

java - 防止文本位于边框对象后面

java - 如何让 FlowLayout 像其他组件一样在底部对齐 JPanel?

java - 在 Java 中从 null 布局切换到 GridBagLayout

java - 当我向按钮添加 actionListener 时,为什么按钮会从边框布局中消失?

java - Swig:将 Java 中的字节数组传递给 C

java - JComboBox:不可编辑但可输入

java - Java中的Web应用程序开发到桌面应用程序开发