Класс JLayeredPane
- Все реализованные интерфейсы:
-
ImageObserver,MenuContainer,Serializable,Accessible
- Прямые известные подклассы:
JDesktopPane
@JavaBean(defaultProperty="accessibleContext") public class JLayeredPane extends JComponent implements Accessible
JLayeredPane добавляет глубину контейнеру JFC/Swing, позволяя компонентам перекрывать друг друга при необходимости. Объект Integer указывает глубину каждого компонента в контейнере, где компоненты с более высокими номерами располагаются «сверху» других компонентов. Для документации ориентированной на задачи и примеров использования слоистых панелей см. Как использовать слоистую панель, раздел в Руководстве по Java. Пример:
JLayeredPane делит диапазон глубин на несколько различных слоев. Размещение компонента в одном из этих слоев упрощает обеспечение правильного перекрытия компонентов без необходимости указания чисел для конкретных глубин: - DEFAULT_LAYER
- Стандартный слой, в котором находятся большинство компонентов. Это самый нижний слой.
- PALETTE_LAYER
- Слой палитры располагается над стандартным слоем. Полезен для плавающих панелей инструментов и палитр, чтобы их можно было расположить над другими компонентами.
- MODAL_LAYER
- Слой, используемый для модальных диалоговых окон. Они будут отображаться поверх любых панелей инструментов, палитр или стандартных компонентов в контейнере.
- POPUP_LAYER
- Слой всплывающих окон отображается поверх диалоговых окон. Таким образом, всплывающие окна, связанные с раскрывающимися списками, всплывающими подсказками и другими текстовыми подсказками, будут отображаться поверх компонента, палитры или диалогового окна, которые их сгенерировали.
- DRAG_LAYER
- При перетаскивании компонента его переназначение в слой перетаскивания гарантирует, что он будет расположен поверх всех других компонентов в контейнере. После завершения перетаскивания его можно переназначить в его обычный слой.
JLayeredPane moveToFront(Component), moveToBack(Component) и setPosition могут использоваться для изменения положения компонента в пределах его слоя. Метод setLayer также может использоваться для изменения текущего слоя компонента. Подробности
JLayeredPane управляет своим списком дочерних элементов, как и Container, но позволяет определить несколько слоев внутри себя. Дочерние элементы в одном слое управляются точно так же, как обычный объект Container, с дополнительной возможностью, что при перекрытии дочерних компонентов, дочерние элементы в верхних слоях отображаются поверх дочерних элементов в нижних слоях. Каждый слой — это отдельное целое число. Атрибут слоя можно установить для Component, передав объект Integer во время вызова add.
Например:
layeredPane.add(child, JLayeredPane.DEFAULT_LAYER);
or
layeredPane.add(child, Integer.valueOf(10));
Атрибут слоя также можно установить для компонента, вызвав метод
layeredPaneParent.setLayer(child, 10) на JLayeredPane, который является родителем компонента. Слой должен быть установлен перед добавлением дочернего элемента к родителю. Слои с более высокими номерами отображаются поверх слоев с более низкими номерами. Таким образом, используя числа для слоев и буквы для отдельных компонентов, представительный порядок списка будет выглядеть следующим образом:
5a, 5b, 5c, 2a, 2b, 2c, 1a , где компоненты слева ближе к верхней части экрана. Компонент можно переместить в верхнюю или нижнюю позицию в пределах своего слоя, вызвав moveToFront или moveToBack.
Положение компонента в пределах слоя также может быть задано напрямую. Допустимые позиции варьируются от 0 до значения, на единицу меньшего, чем количество компонентов в этом слое. Значение -1 указывает на самое нижнее положение. Значение 0 указывает на самое верхнее положение. В отличие от номеров слоев, более высокие значения позиции располагаются ниже на экране.
Примечание: Эта последовательность (определенная java.awt.Container) является обратной последовательности нумерации слоев. Обычно, однако, вы будете использоватьВот несколько примеров использования метода add(Component, layer, position): Вызов add(5x, 5, -1) приводит к:moveToFront,moveToBackиsetLayer.
5a, 5b, 5c, 5x, 2a, 2b, 2c, 1a Вызов add(5z, 5, 2) приводит к:
5a, 5b, 5z, 5c, 5x, 2a, 2b, 2c, 1a Вызов add(3a, 3, 7) приводит к:
5a, 5b, 5z, 5c, 5x, 3a, 2a, 2b, 2c, 1a Использование обычных механизмов рисования/событий приводит к тому, что 1a отображается внизу, а 5a — над всеми другими компонентами. Примечание: эти слои — просто логическая конструкция, и LayoutManagers будут влиять на все дочерние компоненты этого контейнера без учета настроек слоев.
Предупреждение: Swing не является потокобезопасным. Более подробную информацию см. в Политике потоков Swing.
Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими выпусками Swing. Текущая поддержка сериализации подходит для краткосрочного хранения или RMI между приложениями, работающими с одной и той же версией Swing. Начиная с версии 1.4, поддержка долгосрочного хранения всех JavaBeans была добавлена в пакет java.beans. Пожалуйста, ознакомьтесь с XMLEncoder.
- С:
- 1.2
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
protected class |
JLayeredPane.AccessibleJLayeredPane |
Этот класс реализует поддержку доступности для класса JLayeredPane. |
Вложенные классы/интерфейсы, объявленные в классе javax.swing.JComponent
JComponent.AccessibleJComponent
Вложенные классы/интерфейсы, объявленные в классе java.awt.Container
Container.AccessibleAWTContainer
Вложенные классы/интерфейсы, объявленные в классе java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final Integer |
DEFAULT_LAYER |
Объект-утилита, определяющий слой Default. |
static final Integer |
DRAG_LAYER |
Объект-утилита, определяющий слой Drag. |
static final Integer |
FRAME_CONTENT_LAYER |
Объект-утилита, определяющий слой Frame Content. |
static final String |
LAYER_PROPERTY |
Связанное свойство |
static final Integer |
MODAL_LAYER |
Объект-утилита, определяющий слой Modal. |
static final Integer |
PALETTE_LAYER |
Объект-утилита, определяющий слой Palette. |
static final Integer |
POPUP_LAYER |
Объект-утилита, определяющий слой Popup. |
Поля, объявленные в классе javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Поля, объявленные в классе java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Поля, объявленные в интерфейсе java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
JLayeredPane() |
Создаёт новый JLayeredPane |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
AccessibleContext |
getAccessibleContext() |
Возвращает AccessibleContext, связанный с этим JLayeredPane. |
int |
getComponentCountInLayer |
Возвращает количество элементов, в настоящее время находящихся на указанном слое. |
Component[] |
getComponentsInLayer |
Возвращает массив компонентов на указанном слое. |
protected Hashtable |
getComponentToLayer() |
Возвращает хэш-таблицу, которая сопоставляет компоненты слоям. |
int |
getIndexOf |
Возвращает индекс указанного компонента. |
int |
getLayer |
Возвращает атрибут слоя для указанного компонента. |
static int |
getLayer |
Метод-утилита, возвращающий свойство слоя для JComponent, без побочных эффектов, таких как setLayer(). |
static JLayeredPane |
getLayeredPaneAbove |
Метод-утилита, возвращающий первый JLayeredPane, который содержит указанный компонент. |
protected Integer |
getObjectForLayer |
Возвращает объект Integer, связанный с указанным слоем. |
int |
getPosition |
Возвращает относительное положение компонента в его слое. |
int |
highestLayer() |
Возвращает наибольшее значение слоя среди всех текущих дочерних элементов. |
protected int |
insertIndexForLayer |
Примитивный метод, определяющий подходящее место для вставки нового дочернего элемента на основе запрошенного слоя и позиции. |
boolean |
isOptimizedDrawingEnabled() |
Возвращает false, если компоненты в панели могут перекрываться, что делает оптимизированное рисование невозможным. |
int |
lowestLayer() |
Возвращает наименьшее значение слоя среди всех текущих дочерних элементов. |
void |
moveToBack |
Перемещает компонент в самый низ компонентов в его текущем слое (позиция -1). |
void |
moveToFront |
Перемещает компонент в самый верх компонентов в его текущем слое (позиция 0). |
void |
paint |
Рисует этот JLayeredPane в указанном контексте графики. |
protected String |
paramString() |
Возвращает строковое представление этого JLayeredPane. |
static void |
putLayer |
Устанавливает свойство слоя для JComponent. |
void |
remove |
Удаляет компонент с заданным индексом из этой панели. |
void |
removeAll() |
Удаляет все компоненты из этого контейнера. |
void |
setLayer |
Устанавливает атрибут слоя для указанного компонента, делая его самым нижним компонентом в этом слое. |
void |
setLayer |
Устанавливает атрибут слоя для указанного компонента и его положение в этом слое. |
void |
setPosition |
Перемещает компонент в позицию position в его текущем слое, где 0 - самая верхняя позиция в слое, а -1 - самая нижняя. |
Методы, объявленные в классе javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUI, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
Методы, объявленные в классе java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
Методы, объявленные в классе java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
Подробное описание полей
DEFAULT_LAYER
public static final Integer DEFAULT_LAYER
PALETTE_LAYER
public static final Integer PALETTE_LAYER
MODAL_LAYER
public static final Integer MODAL_LAYER
POPUP_LAYER
public static final Integer POPUP_LAYER
DRAG_LAYER
public static final Integer DRAG_LAYER
FRAME_CONTENT_LAYER
public static final Integer FRAME_CONTENT_LAYER
- См. также:
LAYER_PROPERTY
public static final String LAYER_PROPERTY
- См. также:
Подробное описание конструкторов
JLayeredPane
public JLayeredPane()
Подробное описание методов
remove
removeAll
isOptimizedDrawingEnabled
@BeanProperty(bound=false) public boolean isOptimizedDrawingEnabled()
- Overrides:
-
isOptimizedDrawingEnabledв классеJComponent - Возвращает:
- false, если компоненты могут перекрываться, иначе true
- См. также:
putLayer
public static void putLayer(JComponent c, int layer)
- Параметры:
-
c- JComponent, который нужно переместить -
layer- целое число, определяющее слой, на который нужно переместить - См. также:
getLayer
public static int getLayer(JComponent c)
- Параметры:
-
c- JComponent, который нужно проверить - Возвращает:
- целое число, определяющее слой компонента
getLayeredPaneAbove
public static JLayeredPane getLayeredPaneAbove(Component c)
- Параметры:
-
c- компонент для проверки - Возвращает:
- JLayeredPane, который содержит компонент, или null, если в иерархии компонентов не найден JLayeredPane
- См. также:
setLayer
public void setLayer(Component c, int layer)
- Параметры:
-
c- компонент, для которого нужно установить слой -
layer- целое число, определяющее слой для установки, где меньшие числа ближе к низу
setLayer
public void setLayer(Component c, int layer, int position)
- Параметры:
-
c- компонент, для которого нужно установить слой -
layer- целое число, определяющее слой для установки, где меньшие числа ближе к низу -
position- целое число, определяющее позицию в пределах слоя, где 0 - самая верхняя позиция, а -1 - самая нижняя позиция
getLayer
public int getLayer(Component c)
- Параметры:
-
c- компонент для проверки - Возвращает:
- целое число, определяющее текущий слой компонента
getIndexOf
public int getIndexOf(Component c)
- Параметры:
-
c- компонент для проверки - Возвращает:
- целое число, определяющее индекс компонента
moveToFront
public void moveToFront(Component c)
- Параметры:
-
c- компонент для перемещения - См. также:
moveToBack
public void moveToBack(Component c)
- Параметры:
-
c- компонент для перемещения - См. также:
setPosition
public void setPosition(Component c, int position)
position в его текущем слое, где 0 - самая верхняя позиция в слое, а -1 - самая нижняя позиция. Примечание: Нумерация позиций определена java.awt.Container и является обратной нумерации слоев. Более низкие номера позиций находятся ближе к верху (0 - самая верхняя), а более высокие номера позиций ближе к низу.
- Параметры:
-
c- компонент для перемещения -
position- целое число в диапазоне -1..N-1, где N - количество компонентов в текущем слое компонента
getPosition
public int getPosition(Component c)
- Параметры:
-
c- компонент для проверки - Возвращает:
- целое число, задающее позицию компонента, где 0 - самая верхняя позиция, а наибольшее значение индекса = количество компонентов в этом слое минус 1
- См. также:
highestLayer
public int highestLayer()
- Возвращает:
- целое число, указывающее слой самого верхнего компонента в области, или ноль, если дочерних элементов нет
lowestLayer
public int lowestLayer()
- Возвращает:
- целое число, указывающее слой самого нижнего компонента в области, или ноль, если дочерних элементов нет
getComponentCountInLayer
public int getComponentCountInLayer(int layer)
- Параметры:
-
layer- целое число, определяющее слой для проверки - Возвращает:
- целое число, определяющее количество компонентов на этом слое
getComponentsInLayer
public Component[] getComponentsInLayer(int layer)
- Параметры:
-
layer- целое число, определяющее слой для проверки - Возвращает:
- массив компонентов, содержащихся на этом слое
paint
public void paint(Graphics g)
- Переопределяет:
-
paintв классеJComponent - Параметры:
-
g- контекст графики, в котором нужно отрисовать - См. также:
getComponentToLayer
protected Hashtable<Component, Integer> getComponentToLayer()
- Возвращает:
- хэш-таблица, используемая для сопоставления компонентов с их слоями
getObjectForLayer
protected Integer getObjectForLayer(int layer)
- Параметры:
-
layer- целое число, определяющее слой - Возвращает:
- объект Integer для этого слоя
insertIndexForLayer
protected int insertIndexForLayer(int layer, int position)
- Параметры:
-
layer- целое число, определяющее слой -
position- целое число, определяющее позицию внутри слоя - Возвращает:
- целое число, задающее (абсолютную) индекс вставки
- См. также:
paramString
protected String paramString()
null.- Переопределяет:
-
paramStringв классеJComponent - Возвращает:
- строковое представление этого JLayeredPane.
getAccessibleContext
@BeanProperty(bound=false) public AccessibleContext getAccessibleContext()
- Определяется в:
-
getAccessibleContextв интерфейсеAccessible - Переопределяет:
-
getAccessibleContextв классеComponent - Возвращает:
- AccessibleJLayeredPane, который служит AccessibleContext этого JLayeredPane
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/swing/JLayeredPane.html