Я всегда немного не понимал разницу между стеклянной панелью и многослойной панелью. Является ли стеклянная панель, по сути, просто «самым верхним слоем корневой панели» или она ведет себя по-другому? Когда бы вы использовали многослойную панель вместо стеклянной панели?
Вариант использования стеклянной панели против многослойной панели
Ответы (1)
Это две разные вещи:
многоуровневая панель является местом назначения всего содержимого, которое добавляется или отображается внутри
JFrame
. Например, каждый нормальный компонент, такой какJLabels
,JTextFields
,JTable
и т. д., кроме того, он неявно обрабатывает z-упорядочение элементов, которые добавляются к нему, поэтому он может обрабатывать всплывающие меню или эффекты перетаскивания: это потому, что всплывающее меню добавлено на многоуровневую панель с az выше, чем у обычных компонентов, с конечным эффектом, чтобы оставаться поверх других вещей. См. здесь, чтобы лучше понять поведение.стеклянная панель — это необязательный слой, который по умолчанию скрыт и в любом случае остается поверх панели слоев. Таким образом, в основном все, что вы рисуете на стекле, всегда будет видно: вы можете думать об этом как о прозрачном листе, который накладывается поверх обычного
JFrame
, который вы можете использовать, если вам нужны специальные эффекты.
И многослойная панель, и стеклянная панель размещаются на корневой панели, которая является основой, из которой строится каждый кадр.
JLabels
, JTexFields
, JTable
и т. д. на стекло? Или просто рисовать что-то прямо на нем?
- person Guillaume F.; 29.03.2020