Предыстория: Пишем на занятиях RPG. Игровое поле реализовано так: двумерный массив с разного типа плитками, каждому типу плитки соответствует собственный символ(чтобы было можно, например, считать карту из txt). Создаю оконный редактор карт, в котором каждой из плиток соответствует кнопка с названием из символа соответствующей плитки(выглядит по типу Сапёра). Реализовано должно быть так, чтобы множество из n символов плиток гонялось по кругу за n нажатий на кнопку.
Вопрос: Как передать обработчику нажатия на кнопку информацию о нажатой кнопке? Экземпляр кнопки? В идеале(в идеале, потому что вся оставшаяся часть редактора уже написана из таких соображений) представляется что-то подобное:
public class TileButtonsListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
switch (currentButtonsName()) {//передаем в switch имя нажатой кнопки
case "#":
setСurrentButtonsName("O");//присваиваем нажатой кнопке новое имя
break;
case "O":
setСurrentButtonsName("B");
break;
case "B":
setСurrentButtonsName("#");
break;
default:
break;
}
Вам необходимо забирать source из ивента. Выглядеть будет так
public class TileButtonsListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
Button btn = (Button) e.getSource();
switch (currentButtonsName()) { //передаем в switch имя нажатой кнопки
case "#":
btn.setText("O"); //присваиваем нажатой кнопке новое имя
break;
case "O":
btn.setText("B");
break;
case "B":
btn.setText("#");
break;
default:
break;
}
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники