2012-11-10 36 views
0

我最近决定开始使用GridLayout,因为FlowLayout似乎有点业余。但是,我需要帮助。创建GridLayout时的参数是(行,列,行空间,列空间)。我有一个变量的行数量和4列的数量,但当我尝试添加一个JButton后的一切,有5列。 这里是我的代码:GridLayout列

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++; 
    } 

当我运行上面的代码,我得到四列,它工作正常。但是,当我添加一个按钮到最后,我得到五个。任何人都可以告诉我如何给一个按钮整行?

回答

4

从Java文档

一个,但不是两者,行和cols的可以是零,这意味着任何 对象的数目可以被放置在一排或一列。现在

,没有实际的代码集合了GridLayout,这是很难说的,但是如果你只维持4列之后,我会创造一个GridLayout如下,new GridLayout(0, 4)

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

+2

+1解释经常被误解的功能。这是一个最小的[示例](http://stackoverflow.com/a/5751044/230513)。 – trashgod

+0

是的,虽然我在得到答复之前已经想清楚了,非常感谢。 +1 – Squirvin

+0

@squirvin是的,这是它始终工作的方式;) – MadProgrammer