2012-11-10 64 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