2012-05-29 52 views
0

我想讓16個按鈕顯示爲4x4網格。每個按鈕應該是相同的大小,並有相同的差距。以網格式佈局設置JButton的固定大小

我已經能夠設置間隙大小,但我不能減小按鈕的大小。我已經基本上使用這只是爲組佈局...

layout.setHorizontalGroup(layout.createSequentialGroup() 
       .addGroup(layout.createParallelGroup(LEADING) 
        .addComponent(button1) 
        .addComponent(button5) 
        .addComponent(button9) 
        .addComponent(button13)) 
       .addGroup(layout.createParallelGroup(LEADING) 
        .addComponent(button2) 
        .addComponent(button6) 
        .addComponent(button10) 
        .addComponent(button14)) 
       .addGroup(layout.createParallelGroup(LEADING) 
        .addComponent(button3) 
        .addComponent(button7) 
        .addComponent(button11) 
        .addComponent(button15)) 
       .addGroup(layout.createParallelGroup(LEADING) 
        .addComponent(button4) 
        .addComponent(button8) 
        .addComponent(button12) 
        .addComponent(button16)) 
      ); 

      layout.setVerticalGroup(layout.createSequentialGroup() 
       .addGroup(layout.createParallelGroup(BASELINE) 
        .addComponent(button1) 
        .addComponent(button2) 
        .addComponent(button3) 
        .addComponent(button4)) 
       .addGroup(layout.createParallelGroup(BASELINE) 
        .addComponent(button5) 
        .addComponent(button6) 
        .addComponent(button7) 
        .addComponent(button8)) 
       .addGroup(layout.createParallelGroup(BASELINE) 
        .addComponent(button9) 
        .addComponent(button10) 
        .addComponent(button11) 
        .addComponent(button12)) 
       .addGroup(layout.createParallelGroup(BASELINE) 
        .addComponent(button13) 
        .addComponent(button14) 
        .addComponent(button15) 
        .addComponent(button16)) 

有人可以請幫助我一個更好的方法。

+0

你不能使用網格佈局? – elias

+0

@Elias感謝隊友得到它的工作.. :) –

回答

0

您也可以嘗試使用網格佈局()。這將所有組件排列在網格中,行和列由參數定義。創建使用行

GridLayout g = new GridLayout(rows, columns) 

您需要導入AWT 所以你的代碼是這樣的:

GridLayout g = new GridLayout(4,4); 
//Add it to your JPanel 
myJpanel.setLayout(g); 
//then 
myJpanel.add(button1); 
//the rest of your code 
-1

GroupLayout中每個組件的大小受三個值的限制;最小尺寸,首選大小和最大尺寸

嘗試:

button.setPreferredSize(new Dimension(50, 10)); 
+0

這通常是好的做法,以避免設置首選大小,因爲它會跨平臺和L&F更好地工作。 –

+0

*「受三個值約束」*每當佈局管理器選擇遵守這些值時。我已經對提到'setPreferredSize()'的這個答案進行了否決,但是這增加了額外的原因-1。 –

相關問題