- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JLayeredPane
-
- 实现的所有接口
-
ImageObserver
,MenuContainer
,Serializable
,Accessible
- 已知直接子类:
-
JDesktopPane
@JavaBean(defaultProperty="accessibleContext")public class JLayeredPaneextends JComponentimplements Accessible
JLayeredPane
为JFC / Swing容器添加深度,允许组件在需要时相互重叠。Integer
对象指定容器中每个组件的深度,其中编号较高的组件位于其他组件的“顶部”。 有关面向任务的文档和使用分层窗格的示例,请参阅“Java教程”中的 How to Use a Layered Pane部分。 ExampleJLayeredPane
将深度范围划分为几个不同的层。 将组件放入其中一个层可以轻松确保组件正确重叠,而无需担心为特定深度指定数字:- DEFAULT_LAYER
- 标准层,大多数组件都在这里。 这是最底层。
- PALETTE_LAYER
- 调色板层位于默认图层上。 用于浮动工具栏和调色板,因此它们可以位于其他组件上方。
- MODAL_LAYER
- 用于模态对话框的图层。 它们将出现在容器中的任何工具栏,调色板或标准组件的顶部。
- POPUP_LAYER
- 弹出层显示在上面的对话框中。 这样,与组合框,工具提示和其他帮助文本关联的弹出窗口将显示在生成它们的组件,调色板或对话框的上方。
- DRAG_LAYER
- 拖动组件时,将其重新分配给拖动层可确保它位于容器中的每个其他组件上。 完成拖动后,可以将其重新分配到其普通图层。
JLayeredPane
方法moveToFront(Component)
,moveToBack(Component)
和setPosition
可用于它的层内重新定位的组分。setLayer
方法还可用于更改组件的当前层。细节
JLayeredPane
管理其子项列表,如Container
,但允许在其自身内定义多个层。 同一层中的子项的管理方式与普通的Container
对象完全相同,添加的功能是,当子组件重叠时,较高层中的子项显示在较低层中的子项上方。每个层都是一个不同的整数。 通过在add调用期间传递
Integer
对象,可以在Component
上设置layer属性。
例如:layeredPane.add(child, JLayeredPane.DEFAULT_LAYER); or layeredPane.add(child, Integer.valueOf.valueOf(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开始,
java.beans
软件包中添加了对所有JavaBeansjava.beans
长期存储的支持。 请参阅XMLEncoder
。- 从以下版本开始:
- 1.2
- 另请参见:
- Serialized Form
-
-
嵌套类汇总
嵌套类 变量和类型 类 描述 protected class
JLayeredPane.AccessibleJLayeredPane
此类实现JLayeredPane
类的可访问性支持。-
嵌套类/接口声明在类 javax.swing.JComponent
JComponent.AccessibleJComponent
-
嵌套类/接口声明在类 java.awt.Container
Container.AccessibleAWTContainer
-
-
字段汇总
字段 变量和类型 字段 描述 static Integer
DEFAULT_LAYER
定义默认图层的便捷对象。static Integer
DRAG_LAYER
定义Drag图层的便捷对象。static Integer
FRAME_CONTENT_LAYER
定义框架内容层的便捷对象。static String
LAYER_PROPERTY
绑定财产static Integer
MODAL_LAYER
定义Modal图层的便捷对象。static Integer
PALETTE_LAYER
定义Palette图层的便捷对象。static 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
-
Fields declared in interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
-
构造方法摘要
构造方法 构造器 描述 JLayeredPane()
创建一个新的JLayeredPane
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 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)
返回与指定图层关联的Integer对象。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
,其中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, 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, hide, 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
定义默认图层的便捷对象。 相当于Integer.valueOf(0)。
-
PALETTE_LAYER
public static final Integer PALETTE_LAYER
定义Palette图层的便捷对象。 相当于Integer.valueOf(100)。
-
MODAL_LAYER
public static final Integer MODAL_LAYER
定义Modal图层的便捷对象。 相当于Integer.valueOf(200)。
-
POPUP_LAYER
public static final Integer POPUP_LAYER
定义Popup图层的便捷对象。 相当于Integer.valueOf(300)。
-
DRAG_LAYER
public static final Integer DRAG_LAYER
定义Drag图层的便捷对象。 相当于Integer.valueOf(400)。
-
FRAME_CONTENT_LAYER
public static final Integer FRAME_CONTENT_LAYER
定义框架内容层的便捷对象。 此图层通常仅用于定位JFrame的contentPane和menuBar组件。 相当于Integer.valueOf(-30000)。- 另请参见:
-
JFrame
-
-
方法详细信息
-
remove
public void remove(int index)
从此窗格中删除索引组件。 这是绝对索引,忽略了图层。- 重写:
-
remove
在类Container
- 参数
-
index
- 指定要删除的组件的int - 另请参见:
-
getIndexOf(java.awt.Component)
-
removeAll
public void removeAll()
从此容器中删除所有组件。- 重写:
-
removeAll
在类Container
- 从以下版本开始:
- 1.5
- 另请参见:
-
Container.add(java.awt.Component)
,Container.remove(int)
,Container.invalidate()
-
isOptimizedDrawingEnabled
@BeanProperty(bound=false)public boolean isOptimizedDrawingEnabled()
如果窗格中的组件可以重叠,则返回false,这使得无法进行优化绘制。 否则,返回true。- 重写:
-
isOptimizedDrawingEnabled
在类JComponent
- 结果
- 如果组件可以重叠,则为false,否则为true
- 另请参见:
-
JComponent.isOptimizedDrawingEnabled()
-
putLayer
public static void putLayer(JComponent c, int layer)
在JComponent上设置layer属性。 此方法不会导致任何副作用,如setLayer()(绘画,添加/删除等)。 通常你应该使用实例方法setLayer(),以获得所需的副作用(如重新绘制)。- 参数
-
c
- 要移动的JComponent -
layer
- 指定要将其移动到的图层的int - 另请参见:
-
setLayer(java.awt.Component, int)
-
getLayer
public static int getLayer(JComponent c)
获取JComponent的layer属性,它不会导致任何副作用,如setLayer()。 (绘画,添加/删除等)通常你应该使用实例方法getLayer()。- 参数
-
c
- 要检查的JComponent - 结果
- 指定组件层的int
-
getLayeredPaneAbove
public static JLayeredPane getLayeredPaneAbove(Component c)
返回包含指定组件的第一个JLayeredPane的便捷方法。 请注意,所有JFrame在其根目录中都有一个JLayeredPane,因此JFrame中的任何组件都将具有JLayeredPane父级。
-
setLayer
public void setLayer(Component c, int layer)
设置指定组件的图层属性,使其成为该图层中最底层的组件。 应该在添加到父级之前调用。- 参数
-
c
- 要为其设置图层的组件 -
layer
- 指定要设置的图层的int,其中较小的数字更靠近底部
-
setLayer
public void setLayer(Component c, int layer, int position)
设置指定组件的图层属性,并设置其在该图层中的位置。- 参数
-
c
- 为其设置图层的组件 -
layer
- 指定要设置的图层的int,其中较小的数字更靠近底部 -
position
- 指定图层内位置的int,其中0表示最顶部位置,-1表示最底部位置
-
getLayer
public int getLayer(Component c)
返回指定Component的layer属性。- 参数
-
c
- 要检查的组件 - 结果
- 指定组件当前层的int
-
getIndexOf
public int getIndexOf(Component c)
返回指定Component的索引。 这是绝对索引,忽略了图层。 索引号,如位置号,在索引零处具有最顶层的组件。 较大的数字更接近底部。- 参数
-
c
- 要检查的组件 - 结果
- 指定组件索引的int
-
moveToFront
public void moveToFront(Component c)
将组件移动到其当前图层(位置0)中组件的顶部。- 参数
-
c
- 要移动的组件 - 另请参见:
-
setPosition(Component, int)
-
moveToBack
public void moveToBack(Component c)
将组件移动到当前图层中组件的底部(位置-1)。- 参数
-
c
- 要移动的组件 - 另请参见:
-
setPosition(Component, int)
-
setPosition
public void setPosition(Component c, int position)
将组件移动到其当前图层中的position
,其中0是图层中的最顶部位置,-1是最底部位置。注意:位置编号由java.awt.Container定义,与层编号相反。 较低的位置编号更靠近顶部(0是最顶部),较高的位置编号更靠近底部。
- 参数
-
c
- 要移动的组件 -
position
- 范围为-1..N-1的int,其中N是组件当前层中的组件数
-
getPosition
public int getPosition(Component c)
获取组件在其图层中的相对位置。- 参数
-
c
- 要检查的组件 - 结果
- 给出组件位置的int,其中0是最高位置,最高索引值=该层组件的计数,减去1
- 另请参见:
-
getComponentCountInLayer(int)
-
highestLayer
public int highestLayer()
返回所有当前子项的最高层值。 如果没有孩子,则返回0。- 结果
- 一个int,指示窗格中最顶层组件的层,如果没有子节点则为零
-
lowestLayer
public int lowestLayer()
返回所有当前子项的最低层值。 如果没有孩子,则返回0。- 结果
- 一个int,指示窗格中最底部组件的图层,如果没有子项,则为零
-
getComponentCountInLayer
public int getComponentCountInLayer(int layer)
返回当前在指定图层中的子项数。- 参数
-
layer
- 指定要检查的图层的int - 结果
- 一个int,指定该层中的组件数
-
getComponentsInLayer
public Component[] getComponentsInLayer(int layer)
返回指定图层中组件的数组。- 参数
-
layer
- 指定要检查的图层的int - 结果
- 该层中包含的一组Components
-
paint
public void paint(Graphics g)
在指定的图形上下文中绘制此JLayeredPane。
-
getComponentToLayer
protected Hashtable<Component,Integer> getComponentToLayer()
返回将组件映射到图层的哈希表。- 结果
- Hashtable用于将组件映射到其图层
-
getObjectForLayer
protected Integer getObjectForLayer(int layer)
返回与指定图层关联的Integer对象。- 参数
-
layer
- 指定图层的int - 结果
- 该图层的整数对象
-
insertIndexForLayer
protected int insertIndexForLayer(int layer, int position)
原始方法,用于根据图层和位置请求确定插入新子项的正确位置。- 参数
-
layer
- 指定图层的int -
position
- 指定图层内位置的int - 结果
- 给出(绝对)插入索引的int
- 另请参见:
-
getIndexOf(java.awt.Component)
-
paramString
protected String paramString()
返回此JLayeredPane的字符串表示形式。 此方法仅用于调试目的,返回字符串的内容和格式可能因实现而异。 返回的字符串可能为空,但可能不是null
。- 重写:
-
paramString
在类JComponent
- 结果
- 此JLayeredPane的字符串表示形式。
-
getAccessibleContext
@BeanProperty(bound=false)public AccessibleContext getAccessibleContext()
获取与此JLayeredPane关联的AccessibleContext。 对于分层窗格,AccessibleContext采用AccessibleJLayeredPane的形式。 如有必要,将创建一个新的AccessibleJLayeredPane实例。- Specified by:
-
getAccessibleContext
在界面Accessible
- 重写:
-
getAccessibleContext
在类Component
- 结果
- an AccessibleJLayeredPane that serves as the AccessibleContext of this JLayeredPane
-
-