Очистка двойного массива (я думаю, что я делаю это неправильно) - PullRequest
0 голосов
/ 26 февраля 2012

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

Я думал, что все, что я должен был сделать, это

buttonPanels = new JButton[row][col]

сделать новый (чистый) экземпляр массива кнопок? Вся доска представляет собой массив JButton.

Два изображения ниже, одно до и одно после того, как я вхожу в новый регион. Вы можете видеть, как на фотографии после добавления все новые плитки просто добавляются к существующим, что вызывает много проблем.

http://i421.photobucket.com/albums/pp296/rskom/before.png http://i421.photobucket.com/albums/pp296/rskom/after.png

СПАСИБО !! :) Впервые попробую что-нибудь типа рпг, так что не слишком критикуйте это до сих пор.

1 Ответ

1 голос
/ 26 февраля 2012

Не видя больше вашего кода, трудно ответить на вашу проблему, но я думаю, что знаю, в чем проблема.Вы показываете код, где вы создаете новый массив ссылок JButton.Однако это не разрушает и не удаляет кнопки, которые вы имели в предыдущем массиве.Если кнопки были где-то видны (как правило, в случае наличия кнопок), то сначала их следует удалить из этого контейнера.Вероятно, это та последовательность, которая вам нужна, если вы хотите заменить все кнопки.

Для каждой кнопки, на которую ссылается ваш массив, удалите ее из контейнера, где она видна.Затем вы можете заменить свой массив, заполнить его новыми кнопками и, наконец, добавить кнопки в контейнер, где они снова должны быть видны.

Но тогда реальный вопрос заключается в том, действительно ли вам нужно создать новый массив сновые кнопки.Разве вы не можете просто использовать свой существующий?

...