public class JLayeredPane extends JComponent implements Accessible
JLayeredPane
增加了JFC / Swing容器的深度,允许组件在需要时重叠。
Integer
对象指定容器中的每个组件的深度,其中较高编号的组件位于其他组件的“顶部”上。
对于面向任务的文档和使用分层窗格的示例,请参阅Java Tutorial中的 How to Use a Layered Pane部分。
JLayeredPane
将深度范围划分为几个不同的层次。
将组件放入其中一个层可以轻松确保组件正确重叠,而无需担心指定特定深度的数字:
JLayeredPane
方法moveToFront(Component)
, moveToBack(Component)
和setPosition
可用于它的层内重新定位的组分。
setLayer
方法也可用于更改组件的当前层。
JLayeredPane
管理它的孩子列表,如Container
,但允许定义几个层本身。
同一层中的孩子的管理与普通的Container
对象一样,其附加功能是当儿童组件重叠时,较高层的儿童显示在较低层的孩子之上。
每个层都是一个不同的整数。 所述层属性可以在被设置Component
通过使Integer
加载呼叫期间对象。
例如:
layeredPane.add(child, JLayeredPane.DEFAULT_LAYER);
or
layeredPane.add(child, new Integer(10));
也可以通过调用在Component上设置layer属性
layeredPaneParent.setLayer(child, 10)
在JLayeredPane
那是组件的父级。
在将子添加到父项之前,应该设置该层。
较高数字层显示在较低数字层之上。 因此,使用单个组件的层和字母的数字,代表性的列表顺序将如下所示:
5a, 5b, 5c, 2a, 2b, 2c, 1a
其中最左边的组件最靠近显示器的顶部。
组件可以通过调用moveToFront
或moveToBack
移动到其图层中的顶部或底部位置。
层内的组件位置也可以直接指定。 有效位置的范围为0到1,小于该层中的组件数。 值-1表示最底部的位置。 值为0表示最高位置。 与层数不同,显示屏中较高的位置值较低 。
Note: This sequence (defined by java.awt.Container) is the reverse of the layer numbering sequence. Usually though, you will use以下是使用方法add(Component,layer,position)的一些示例:调用add(5x,5,-1)结果:moveToFront
,moveToBack
, andsetLayer
.
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's Threading Policy 。
警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,对所有JavaBeans的长期存储的支持已经添加到java.beans
包中。 请参阅XMLEncoder
。
Modifier and Type | Class and Description |
---|---|
protected class |
JLayeredPane.AccessibleJLayeredPane
这个类实现了可访问性支持
JLayeredPane 类。
|
JComponent.AccessibleJComponent
Container.AccessibleAWTContainer
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
Modifier and Type | Field and Description |
---|---|
static Integer |
DEFAULT_LAYER
定义默认图层的便利对象。
|
static Integer |
DRAG_LAYER
定义拖动图层的便利对象。
|
static Integer |
FRAME_CONTENT_LAYER
定义框架内容层的便利对象。
|
static String |
LAYER_PROPERTY
绑定财产
|
static Integer |
MODAL_LAYER
定义模态层的便利对象。
|
static Integer |
PALETTE_LAYER
定义调色板层的方便对象。
|
static Integer |
POPUP_LAYER
定义Popup图层的便利对象。
|
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Constructor and Description |
---|
JLayeredPane()
创建一个新的JLayeredPane
|
Modifier and Type | Method and Description |
---|---|
protected void |
addImpl(Component comp, Object constraints, int index)
在指定的索引处将指定的组件添加到此容器。
|
AccessibleContext |
getAccessibleContext()
获取与此JLayeredPane关联的AccessibleContext。
|
int |
getComponentCountInLayer(int layer)
返回当前在指定图层中的子项数。
|
Component[] |
getComponentsInLayer(int layer)
返回指定图层中的组件数组。
|
protected Hashtable<Component,Integer> |
getComponentToLayer()
返回将组件映射到图层的散列表。
|
int |
getIndexOf(Component c)
返回指定Component的索引。
|
int |
getLayer(Component c)
返回指定Component的layer属性。
|
static int |
getLayer(JComponent c)
获取JComponent的layer属性,它不会导致任何类似setLayer()的副作用。
|
static JLayeredPane |
getLayeredPaneAbove(Component c)
方便的方法返回包含指定组件的第一个JLayeredPane。
|
protected Integer |
getObjectForLayer(int layer)
返回与指定图层相关联的整数对象。
|
int |
getPosition(Component c)
获取组件在其层内的相对位置。
|
int |
highestLayer()
返回所有当前子节点的最高层值。
|
protected int |
insertIndexForLayer(int layer, int position)
确定基于层和位置请求插入新孩子的正确位置的原始方法。
|
boolean |
isOptimizedDrawingEnabled()
如果窗格中的组件可以重叠,则返回false,这样使得优化的绘图变得不可能。
|
int |
lowestLayer()
返回所有当前子项的最低层值。
|
void |
moveToBack(Component c)
将组件移动到当前层中的组件底部(位置-1)。
|
void |
moveToFront(Component c)
将组件移动到当前层(位置0)中组件的顶部。
|
void |
paint(Graphics g)
在指定的图形上下文中绘制JLayeredPane。
|
protected String |
paramString()
返回此JLayeredPane的字符串表示形式。
|
static void |
putLayer(JComponent c, int layer)
设置JComponent上的layer属性。
|
void |
remove(int index)
从此窗格中删除索引的组件。
|
void |
removeAll()
从此容器中删除所有组件。
|
void |
setLayer(Component c, int layer)
设置指定组件上的图层属性,使其成为该图层中最底层的组件。
|
void |
setLayer(Component c, int layer, int position)
设置指定组件的层属性,并设置其在该层中的位置。
|
void |
setPosition(Component c, int position)
在当前层
position 移动到
position ,其中0是层内的最高位置,-1是最底层的位置。
|
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, 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, 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
add, add, add, add, add, addContainerListener, 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
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, 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, getPeer, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
public static final Integer DEFAULT_LAYER
public static final Integer PALETTE_LAYER
public static final Integer MODAL_LAYER
public static final Integer POPUP_LAYER
public static final Integer DRAG_LAYER
public static final Integer FRAME_CONTENT_LAYER
JFrame
public static final String LAYER_PROPERTY
protected void addImpl(Component comp, Object constraints, int index)
Container
addLayoutComponent
方法使用指定的约束对象将组件添加到此容器的布局。
约束由正在使用的特定布局管理器定义。 例如, BorderLayout
类定义了五个约束: BorderLayout.NORTH
, BorderLayout.SOUTH
, BorderLayout.EAST
, BorderLayout.WEST
和BorderLayout.CENTER
。
GridBagLayout
类需要一个GridBagConstraints
对象。 未能通过正确类型的约束对象结果在一个IllegalArgumentException
。
如果当前的布局管理器实现了LayoutManager2
,那么就调用LayoutManager2.addLayoutComponent(Component,Object)
。 如果当前的布局管理器不实现LayoutManager2
,而约束是String
,那么LayoutManager.addLayoutComponent(String,Component)
就被调用了。
如果组件不是此容器的祖先,并且具有非空父项,则在将其添加到此容器之前,它将从其当前父进程中删除。
如果程序需要跟踪每个添加到容器的请求,那么这种方法将会覆盖所有其他添加方法。 一个重写方法通常应该包括调用超类的方法版本:
super.addImpl(comp, constraints, index)
该方法更改布局相关信息,因此使组件层次结构无效。 如果容器已经被显示,则此后必须验证层次结构,以显示添加的组件。
addImpl
在
Container
comp
- 要添加的组件
constraints
- 表示此组件的布局约束的对象
index
- 容器列表中插入组件的位置,其中
-1
表示附加到最后
Container.add(Component)
, Container.add(Component, int)
, Container.add(Component, java.lang.Object)
, Container.invalidate()
, LayoutManager
, LayoutManager2
public void remove(int index)
remove
在
Container
index
- 一个int指定要删除的组件
getIndexOf(java.awt.Component)
public void removeAll()
removeAll
在
Container
Container.add(java.awt.Component)
,
Container.remove(int)
,
Container.invalidate()
public boolean isOptimizedDrawingEnabled()
isOptimizedDrawingEnabled
在
JComponent
JComponent.isOptimizedDrawingEnabled()
public static void putLayer(JComponent c, int layer)
c
- JComponent要移动
layer
- 指定要将其移动到的图层的int
setLayer(java.awt.Component, int)
public static int getLayer(JComponent c)
c
- 要检查的JComponent
public static JLayeredPane getLayeredPaneAbove(Component c)
public void setLayer(Component c, int layer)
c
- 为图层设置的组件
layer
- 一个int指定要设置的层,其中较低的数字更靠近底部
public void setLayer(Component c, int layer, int position)
c
- 为图层设置的组件
layer
- 一个int指定要设置的层,其中较低的数字更靠近底部
position
- 一个int指定层内的位置,其中0是最上面的位置,-1是最下面的位置
public int getLayer(Component c)
c
- 要检查的组件
public int getIndexOf(Component c)
c
- 要检查的组件
public void moveToFront(Component c)
c
- 要移动的组件
setPosition(Component, int)
public void moveToBack(Component c)
c
- 要移动的组件
setPosition(Component, int)
public void setPosition(Component c, int position)
position
其当前层,其中0是该层内的最高位置和-1是在最底部位置内。
注意:位置编号由java.awt.Container定义,与层编号相反。 较低的位置数字更靠近顶部(0是最上面的),而较高的位置数字更接近底部。
c
- 要移动的组件
position
- 在-1..N-1范围内的int,其中N是组件当前层中的组件数
public int getPosition(Component c)
c
- 要检查的组件
getComponentCountInLayer(int)
public int highestLayer()
public int lowestLayer()
public int getComponentCountInLayer(int layer)
layer
- 一个int指定要检查的图层
public Component[] getComponentsInLayer(int layer)
layer
- 一个int指定要检查的图层
public void paint(Graphics g)
protected Hashtable<Component,Integer> getComponentToLayer()
protected Integer getObjectForLayer(int layer)
layer
- 指定图层的int
protected int insertIndexForLayer(int layer, int position)
layer
- 指定图层的int
position
- 指定图层内的位置的int
getIndexOf(java.awt.Component)
protected String paramString()
null
。
paramString
在
JComponent
public AccessibleContext getAccessibleContext()
getAccessibleContext
在界面
Accessible
getAccessibleContext
在
Component