Как мне сделать новую сетку? - PullRequest
0 голосов
/ 28 марта 2012

Я помещаю кучу кнопок в GridLayout.Если я хочу, чтобы пользователь мог изменять размер сетки во время выполнения, как мне создать новую сетку?Я попытался сбросить строку / столбцы и заново добавить кнопки, но ничего не изменилось.

Позднее редактирование фрагмента кода для изменения размера сетки:

GridLayout layout = new GridLayout(10, 10);;

void makeGrid(int newSize) {
    for(int i = 0; i <= gridSize; i++) {
       for(int j = 0; j <= gridSize; j++) {
          layout.removeLayoutComponent(grid[i][j]);
       }
    }

    gridSize = newSize;
    layout = new GridLayout(gridSize, gridSize);
    panel.setLayout(layout);

    for(int i = 0; i <= gridSize; i++) {
       for(int j = 0; j <= gridSize; j++) {
          panel.add(grid[i][j]);
       }
    }
    pack();
}

1 Ответ

0 голосов
/ 28 марта 2012

попробуйте определить отдельный метод для отображения кнопок, как,

// pane is your JPanel object
public void displayButtons(){
   pane.add(btn1);
   pane.add(btn2);
   pane.add(btn3);
   pane.add(btn4);
   pane.add(btn5);
   pane.add(btn6);
   pack(); // <- make sure you include this code
}

Затем из прослушивателя классов установите новый макет и вызовите метод displayButtons ().

pane.setLayout(new GridLayout(0,2));
displayButtons();
...