Случай использования Стеклянной панели против Многослойной Панели - PullRequest
4 голосов
/ 01 апреля 2010

Я всегда немного размышлял о разнице между стеклянной и многослойной панелями. Является ли стеклянная панель просто «самым верхним слоем корневой панели», или она ведет себя по-другому? Когда бы вы использовали многослойное стекло вместо стеклянного?

1 Ответ

8 голосов
/ 01 апреля 2010

Это две разные вещи:

  • многослойная панель является местом назначения всего содержимого, которое добавляется или отображается внутри JFrame. Например, каждый нормальный компонент, такой как JLabels, JTextFields, JTable и т. Д., Кроме того, он неявно обрабатывает z-упорядочение добавленных в него элементов, так что он может обрабатывать всплывающие меню или эффекты перетаскивания: потому что всплывающее меню добавляется на многоуровневую панель с az выше, чем обычные компоненты, с конечным эффектом, чтобы остаться поверх других вещей. См. здесь , чтобы лучше понять поведение.

  • стеклянная панель - это необязательный слой, который по умолчанию скрыт и в любом случае остается поверх панели слоя . Таким образом, в основном все, что вы рисуете на стеклянной панели, будет всегда видимым: вы можете думать о нем как о прозрачном листе, который наносится поверх обычного JFrame, который вы можете выбрать для использования с необходимыми спецэффектами.

Как слоистая панель , так и стеклянная панель располагаются на корневой панели , которая является основой для построения каждого кадра.

...