15 игра-головоломка в Java - PullRequest
0 голосов
/ 21 декабря 2011

Я создаю 15 головоломок в Java. Я уже создал игровую панель и написал метод, который находит положение пустого места (не JButton) на поле, и метод, который контролирует, является ли он выигрышным или нет (JButtons в правильных местах). Итак, я получил что-то вроде этого:

enter image description here

У меня проблема с написанием ActionListener. Можно ли написать метод, который определяет, что actionListener должен быть добавлен к JButton, которые окружают пустое пространство.

Мне действительно нужны некоторые советы или / может быть, уже написанные методы / решения.

Спасибо!

Ответы [ 2 ]

8 голосов
/ 21 декабря 2011

Я думаю, что вам лучше всего держать слушателя действия активным на всех кнопках. При нажатии он просто ничего не делает, если определяет, что он не смежен с пустым полем.

6 голосов
/ 21 декабря 2011

Я бы порекомендовал отказаться от идеи только добавления actionListeners к кнопкам, которые окружают пустое пространство: оставьте actionListeners добавленными ко всем кнопкам и обрабатывайте только щелчок, если он действителен.

Кроме того, по моему опыту,Это очень враждебно для пользователя - разрешать кликать только по одной из плиток, которые окружают пустое пространство.На изображении примера вы планируете разрешить клики только по 7, 1 и 11. Вы должны разрешить клики по 5, 7, 1, 13, 14 и 11. Так, например, щелчок по 14 должен сдвинуться 113 и 14 слева.

...