Класс 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.
- Since:
- 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 |
Удобный метод, который возвращает первый JLayeredPane, содержащий указанный компонент. Он не вызывает никаких побочных эффектов, таких как 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
public void remove(int index)
- Переопределяет:
-
removeв классеContainer - Параметры:
-
index- целое число, указывающее компонент для удаления - См. также:
removeAll
public void removeAll()
- Переопределяет:
-
removeAllв классеContainer - С момента:
- 1.5
- См. также:
isOptimizedDrawingEnabled
@BeanProperty(bound=false) public boolean isOptimizedDrawingEnabled()
- Переопределяет:
-
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, 2023, 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://docs.oracle.com/en/java/javase/21/docs/api/java.desktop/javax/swing/JLayeredPane.html