Я работаю над программой, использующей GridLayout. У меня проблема, когда я пытаюсь переместить кнопку в другое положение после выполненного действия. По сути, у меня есть пустое место на панели размером с кнопку. И я хочу переместить кнопку, нажатую в это пустое пространство, наоборот, пустое место займет место этой кнопки. Я использую массив, чтобы получить модель, которая выглядит как рамка. Итак, я знаю, где в моем массиве находится пустое пространство (которое является нулевым значением в массиве JButton), и я пытаюсь, чтобы эта кнопка заняла позицию пустого пространства в массиве и обратно. Но это на самом деле не работает.
Любая помощь будет оценена.
private void setGame(int nbLines, int nbRows, int emptyX, int emptyY) {
pane.removeAll();
for (int i = 0; i < model.length; i++) {
for (int j = 0; j < model[i].length; j++) {
if (!(j == emptyY && emptyX == i)) {
button = new JButton("A");
model[i][j] = button;
pane.add(model[i][j]);
model[i][j].addActionListener(this);
}
}
}
frame.add(pane);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
for (int i = 0; i < model.length; i++) {
for (int j = 0; j < model[i].length; j++) {
if (e.getSource() == model[i][j]) {
System.out.println("Cordonnées de i : " + i + "Cordonnées de j : " + j);
model[i][j] = null;
setGame(nbLignes, nbCol, i, j);
}
}
}
}