Когда я установил GridLayout на JPanel и затем добавляю что-то, он добавляется впоследствии в "текстовом порядке" (слева направо, сверху донизу). Но я хочу добавить элемент к определенной ячейке (в i-th строке в j-th столбце). Действительно ли это возможно?
Нет, вы не можете добавлять компоненты в определенную ячейку . Что вы можете сделать, так это добавить пустые объекты 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"));