GridLayoutをJPanelに設定してから何かを追加すると、「テキストの順序」(左から右、上から下)で追加されます。しかし、特定のセル(j番目の列のi番目の行)に要素を追加したいと思います。出来ますか?
いいえ、特定のセルにコンポーネントを追加することはできません。できることは、空のJPanelオブジェクトを追加し、配列内のオブジェクトへの参照を保持してから、コンポーネントを任意の順序で追加することです。
何かのようなもの:
int i = 3;
int j = 4;
JPanel[][] panelHolder = new JPanel[i][j];
setLayout(new GridLayout(i,j));
for(int m = 0; m < i; m++) {
for(int n = 0; n < j; n++) {
panelHolder[m][n] = new JPanel();
add(panelHolder[m][n]);
}
}
その後、JPanelオブジェクトの1つに直接追加できます。
panelHolder[2][3].add(new JButton("Foo"));
はい
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(2,2,1,1));
JButton component= new JButton("Component");
panel.add(component, 0,0 );
パネルを作成し、そのレイアウトを設定します。
new GridLayout(numberOfRows、numberOfColums、HorizontalGap、VerticleGap)
(new GridLayout(2,2,1,1))=>ここで2行、2列、
-水平方向のギャップ(HGap)がある場合、それらは1px(1単位)でなければなりません
-垂直方向のギャップにも同じようにしたいので、垂直方向のギャップ(VGap)と同じにします。すなわち1ユニット
- この場合;ギャップ=>スペース/マージン/パディング-その意味で。
コンポーネントを作成し、パネルに追加します
-(component、0,0)=> 0,0は行と列です(2d配列のように)。 @row 0&@column 0、または行0と列0の交差点
行と列を配置する場所にコンポーネントを配置して、コンポーネントの配置先を指定します。
各セルには位置== [行] [列]があります
または、hgapsとvgapsなしで実行できます。
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(2,2));
JButton component= new JButton("Component");
panel.add(component, 0,0 );