Вы не должны зависеть от кода GUI (представление), чтобы предоставить вам информацию о данных программы (модель).Лучшим решением было бы «знать», какой компонент находится с самого начала - может быть, у вас должна быть структура данных (2D-массив?), Которая содержит компоненты и обновляется всякий раз, когда что-то добавляется в сетку.
Если вы хотите быстрое и очень грязное исправление, вы можете начать играть в игры с JPanel.getComponentAt()
.Тем не менее, для этого требуются пиксельные координаты, поэтому вам необходимо выполнить обратный инжиниринг, чтобы выяснить, сколько места занимает данный квадрат сетки.Пространство между квадратами сетки задается вашим GridLayout
объектом .Это не рекомендуется что бы то ни было.Я просто включил это в интересах полноты (и поскольку это более буквальный ответ на ваш вопрос).