2016-08-13 78 views
0

StackOverFlow問題 今天你第二次專門堆棧溢出的用戶! XD

所以我想設置的網格格式,這些9個按鈕的定位與接受(x座標,y座標,#ofPixelsWide,#ofPixelsTall)

會有人知道一個更高效/緊湊的.setBounds如何做到這一點?我想知道,即使它不使用.setBounds,畢竟我在這裏學習XD

感謝您的任何建議Java-有效地做.setBounds(int,int,int,int);

for (int i = 0; i < groupOfButtons.length; i++) { 
     int x = 0, y = 0; 
     if (i == 1 || i == 4 || i == 7) { 
      x = 110; 
     } 
     if (i == 2 || i == 5 || i == 8) { 
      x= 220; 
     } 
     if (i > 2 && i < 6) { 
      y = 110; 
     } 
     if (i > 5 && i < 9) { 
      y = 220; 
     } 
     groupOfButtons[i].setBounds(x, y, 100, 100); 
    } 

這是不是順便說一句寫這個(這種方式實際上是更短但看起來更雜亂):

groupOfButtons[0].setBounds(0, 0, 100, 100); 
groupOfButtons[1].setBounds(110, 0, 100, 100); 
groupOfButtons[2].setBounds(220, 0, 100, 100); 
groupOfButtons[3].setBounds(0, 110, 100, 100); 
groupOfButtons[4].setBounds(110, 110, 100, 100); 
groupOfButtons[5].setBounds(220, 110, 100, 100); 
groupOfButtons[6].setBounds(0, 220, 100, 100); 
groupOfButtons[7].setBounds(110, 220, 100, 100); 
groupOfButtons[8].setBounds(220, 220, 100, 100); 
+3

使用佈局管理器:https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html – Tom

+1

這正是佈局經理的意圖 - 你讓事情變得太難了你自己。 –

+1

[GridLayout](http://docs.oracle.com/javase/tutorial/uiswing/layout/grid.html)在這裏是完美的。 –

回答

1

您需要使用網格佈局。然後,您只需添加這些按鈕,它會自動將它們放置爲網格格式。看看這個文檔的佈局中的詳細的解釋:

https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html

如果你需要使用除爲您的項目的其他組件的網格佈局的另一個佈局,可以嵌套佈局(所以這個網格按鈕會另一個佈局內部的嵌套佈局)。

相關問題