Доброго времени суток! Имеется следующий код:
for (int i = 0; i <= 6; i++) {
for (int j = 0; j <= 17; j++) {
Cell[i][j] = createButton((ArenaLine.getMaxWidth() / 20) * 1, (ArenaLine.getMaxHeight() / 9) * 1, (ArenaLine.getMaxWidth() / 20) * (j + 1), (ArenaLine.getMaxHeight() / 9) * (i + 1));
ArenaLine.getChildren().add(Cell[i][j]);
Cell[i][j].setOnAction((ActionEvent actionEvent) -> {
Spawn(Cell[i][j]);
});
}
}
На строчке Spawn(Cell[i][j]);
Java,разумеется,начинает ругаться.
Конечно,можно прописать для каждого элемента действие отдельно,но элементов в массиве крайне много.
Какие есть выходы из данной ситуации? Что можно тут придумать?
Довольно топорно, но:
for (int i = 0; i <= 6; i++) {
for (int j = 0; j <= 17; j++) {
Cell[i][j] = createButton((ArenaLine.getMaxWidth() / 20) * 1, (ArenaLine.getMaxHeight() / 9) * 1, (ArenaLine.getMaxWidth() / 20) * (j + 1), (ArenaLine.getMaxHeight() / 9) * (i + 1));
ArenaLine.getChildren().add(Cell[i][j]);
final int ii = i;
final int jj = j;
Cell[ii][jj].setOnAction((ActionEvent actionEvent) -> {
Spawn(Cell[ii][jj]);
});
}
}
или
for (int i = 0; i <= 6; i++) {
for (int j = 0; j <= 17; j++) {
final Button button = createButton((ArenaLine.getMaxWidth() / 20) * 1, (ArenaLine.getMaxHeight() / 9) * 1, (ArenaLine.getMaxWidth() / 20) * (j + 1), (ArenaLine.getMaxHeight() / 9) * (i + 1));
Cell[i][j] = button;
ArenaLine.getChildren().add(button);
button.setOnAction( ae -> {
Spawn(button);
});
}
}
P.S. Не пишите имена переменных и методов с заглавной буквы, так не принято в java
.
Компилятор вам сказал, что нельзя использовать не финальные переменные в лямбдах. Так, что либо не используйте примитивы, либо не используйте лямбду(сделайте анонимным классом)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Возможно ли авторизовываться в битриксе, допустим, из Java или JS c помощью веб-сервисов? Если нет, то есть какие-нибудь иные способы сделать это?
Ошибка при попытке спарсить JSON: Failed to invoke public comexample
Почему программа даже при правильных ответах ставит оценку 2(1) и говорит "Правильных ответов - 0, неправильных ответов 7"Как это исправить?