Я работаю над игрой Connect Four для школьного проекта Java. У меня есть «как» для JLayeredPane, и он работает, как ожидалось, но я не совсем понимаю «почему», стоящее за определенной концепцией.
Вот мое понимание:
JLayeredPane - это контейнер, похожий на JPanel, который позволяет вам указывать глубину и положение для каждого компонента. Глубина - это целое число, где 0 - нижний уровень, а n-1 - верхний уровень, где n - количество компонентов. Position - это целое число (да, один использует класс оболочки Integer, а один - просто примитив!), Который определяет положение компонента в слое, где 0 - самый верхний слой, -1 - самый нижний слой, а положительные целые числа в между, чем меньше число, тем выше позиция. Таким образом, четыре компонента в одном слое можно расположить в позиции 0, 1, 2, -1 от самого верхнего до самого нижнего.
Мой вопрос: зачем нужны обе концепции?
Например, я создал три JLabel с изображениями: переднюю панель, заднюю панель и кусок. Часть иногда проходит перед передней панелью, а иногда - между передней и задней панелями. Рассмотрим второй пример.
Я могу получить тот же эффект любым из следующих способов:
1) Я могу установить backBoard на уровень 0, положение 0; деталь к слою 1, позиция 0; и frontBoard к слою 2, позиция 0
or
2) Я могу установить backBoard на уровень 0, положение -1; кусок к слою 0, позиция 1; и frontBoard к слою 0, позиция 0
Я протестировал оба этих способа и не могу найти функциональной разницы между ними.
Может ли кто-нибудь пролить свет на эту загадку для меня?