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