Класс 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<Component, |
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)
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в классеComponent - Возвращает:
- строковое представление этого JLayeredPane.
getAccessibleContext
@BeanProperty(bound=false) public AccessibleContext getAccessibleContext()
- Определено в:
-
getAccessibleContextв интерфейсеAccessible - Переопределяет:
-
getAccessibleContextв классеComponent - Возвращает:
- AccessibleJLayeredPane, который служит AccessibleContext этого JLayeredPane
© 1993, 2021, 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/17/docs/api/java.desktop/javax/swing/JLayeredPane.html