Просто используйте одну панель для рисования / контейнер для всего.
Рассмотрим игру на основе плитки. При использовании вашего второго решения каждая плитка будет объектом, память взлетит до небес, и игра замедлится до скорости.
Используя первый вариант, вы гибки. Вы рисуете, что вы хотите, у вас есть координаты панели, так что все относительно этого. Используя пример на основе плитки, вы узнаете высоту и ширину панели, нарисуете квадрат и увеличите координаты X и Y соответственно.
Фреймворки с графическим интерфейсом, такие как Swing или .NET Winforms, дороги, поскольку в них есть множество других вещей, которые не нужны игре. Поэтому, чтобы ответить на ваш вопрос, используйте первый вариант, а не говорите, что используете панель для каждой проверки на вашей доске.
Одним хорошим решением для использования второго метода в сочетании с первым методом является Flyweight Design Pattern . Вы по-прежнему можете использовать ОО-объекты, но у вас будет доля от обычной суммы. Проверьте это.