2016-08-13 2 views
0

StackOverFlow質問 こんにちは、今日は専用のスタックオーバーフローユーザーです。 XD

だから私は誰もが、より効率的/コンパクトを知っているだろう(X座標、Y座標、#ofPixelsWide、#ofPixelsTall)

を受け入れ.setBoundsとグリッド形式でこれらの9つのボタンの位置を設定しようとしていますこれを行う方法?私はすべての後、私はこれではなく、ところでこれを書いてあったか提案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); 
    } 

ためXDに

感謝を学ぶためにここにいる、それは.setBoundsを使用していない場合でも、知っていただきたいと思います(この方法は実際にあります短いですが、はるかに乱雑に見えます):

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

をあなたのプロジェクトの他のコンポーネントのためのグリッドレイアウトのほかに別のレイアウトを使用する必要がある場合は、巣のレイアウトは、(そのボタンのこのグリッドは次のようになりますことができます別のレイアウトの内部にネストされたレイアウト)。

関連する問題