Я могу добавить компонент к определенной ячейке сетки, когда GridLayout используется?

Когда я установил GridLayout на JPanel и затем добавляю что-то, он добавляется впоследствии в "текстовом порядке" (слева направо, сверху донизу). Но я хочу добавить элемент к определенной ячейке (в i-th строке в j-th столбце). Действительно ли это возможно?

25
задан Roman 24 March 2010 в 17:51
поделиться

1 ответ

Нет, вы не можете добавлять компоненты в определенную ячейку . Что вы можете сделать, так это добавить пустые объекты 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:

panelHolder[2][3].add(new JButton("Foo"));
44
ответ дан 28 November 2019 в 20:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: