Изменение имени кнопки при нажатии

160
13 января 2018, 01:07

Предыстория: Пишем на занятиях 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;
        }
Answer 1

Вам необходимо забирать 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;
        }
READ ALSO
Можно ли заменить EJB бины на CDI?

Можно ли заменить EJB бины на CDI?

Можно ли заменить EJB бины на CDI и как это скажется на работе программы?

194
Swing или JavaFX

Swing или JavaFX

Привет, использую Swing для создания графических приложений, наткнулся на JavaFX, многие пишут что swing уже очень старый и вообще деревняЕсть ли что-то...

203
Передача параметров в метод Java

Передача параметров в метод Java

Возможно я что - то не так понимаюНо по моей логике переменная переданная в метод и дальнейшие модификации с ней должны остаться в это методе,...

200