- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JLayeredPane
-
- javax.swing.JDesktopPane
-
- All Implemented Interfaces:
-
ImageObserver
,MenuContainer
,Serializable
,Accessible
@JavaBean(defaultProperty="UI") public class JDesktopPane extends JLayeredPane implements Accessible
用于创建多文档界面或虚拟桌面的容器。 您创建JInternalFrame
对象并将其添加到JDesktopPane
。JDesktopPane
扩展了JLayeredPane
以管理可能重叠的内部帧。 它还保留了对UI类的当前外观(L&F)设置的DesktopManager
实例的引用。 请注意,JDesktopPane
不支持边框。这个类通常被用作父
JInternalFrames
以提供一个可插入DesktopManager
对象到JInternalFrames
。 的installUI
的L&F具体实现的是负责设置desktopManager
适当地可变。 当JInternalFrame
的父母是JDesktopPane
,它应该将其大部分行为委托给desktopManager
(关闭,调整大小等)。有关进一步的文档和示例,请参阅“Java教程”一节中的 How to Use Internal Frames 。
警告: Swing不是线程安全的。 有关详细信息,请参阅Swing's Threading Policy 。
警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,对于所有JavaBeans的长期存储的支持已被添加到
java.beans
包中。 请参阅XMLEncoder
。- 从以下版本开始:
- 1.2
- 另请参见:
-
JInternalFrame
,JInternalFrame.JDesktopIcon
,DesktopManager
, Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 protected class
JDesktopPane.AccessibleJDesktopPane
该类实现JDesktopPane
类的辅助功能支持。-
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
-
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
-
Nested classes/interfaces inherited from class javax.swing.JLayeredPane
JLayeredPane.AccessibleJLayeredPane
-
-
Field Summary
Fields Modifier and Type Field 描述 static int
LIVE_DRAG_MODE
表示正在拖动的项目的全部内容应显示在桌面窗格中。static int
OUTLINE_DRAG_MODE
表示只有正在拖动的项目的轮廓应该出现在桌面窗格中。-
Fields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
Fields inherited from class javax.swing.JLayeredPane
DEFAULT_LAYER, DRAG_LAYER, FRAME_CONTENT_LAYER, LAYER_PROPERTY, MODAL_LAYER, PALETTE_LAYER, POPUP_LAYER
-
-
构造方法摘要
构造方法 Constructor 描述 JDesktopPane()
创建一个新的JDesktopPane
。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 protected void
addImpl(Component comp, Object constraints, int index)
在指定的索引处将指定的组件添加到此容器。AccessibleContext
getAccessibleContext()
获取AccessibleContext
与此JDesktopPane
相关联。JInternalFrame[]
getAllFrames()
返回目前在桌面上显示的所有JInternalFrames
。JInternalFrame[]
getAllFramesInLayer(int layer)
返回当前显示在桌面的指定层中的所有JInternalFrames
。DesktopManager
getDesktopManager()
返回处理桌面特定UI操作的DesktopManger
。int
getDragMode()
获取桌面窗格使用的当前“拖动样式”。JInternalFrame
getSelectedFrame()
返回当前活动JInternalFrame
这个JDesktopPane
,或null
如果没有JInternalFrame
当前处于活动状态。DesktopPaneUI
getUI()
返回渲染此组件的L&F对象。String
getUIClassID()
返回呈现此组件的L&F类的名称。protected String
paramString()
返回此JDesktopPane
的字符串表示JDesktopPane
。void
remove(int index)
从此窗格中删除索引的组件。void
remove(Component comp)
从此容器中删除指定的组件。void
removeAll()
从此容器中删除所有组件。JInternalFrame
selectFrame(boolean forward)
在此桌面窗格中选择下一个JInternalFrame
。void
setComponentZOrder(Component comp, int index)
将指定的组件移动到容器中指定的z顺序索引。void
setDesktopManager(DesktopManager d)
设置将处理桌面专用UI操作的DesktopManger
。void
setDragMode(int dragMode)
设置桌面窗格使用的“拖动样式”。void
setSelectedFrame(JInternalFrame f)
设置当前活动JInternalFrame
这个JDesktopPane
。void
setUI(DesktopPaneUI ui)
设置渲染此组件的L&F对象。void
updateUI()
来自UIManager
通知说L&F已经改变了。-
Methods inherited from class 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, 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
-
Methods inherited from class java.awt.Container
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, removeContainerListener, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
-
Methods inherited from class javax.swing.JComponent
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, 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
-
Methods inherited from class javax.swing.JLayeredPane
getComponentCountInLayer, getComponentsInLayer, getComponentToLayer, getIndexOf, getLayer, getLayer, getLayeredPaneAbove, getObjectForLayer, getPosition, highestLayer, insertIndexForLayer, isOptimizedDrawingEnabled, lowestLayer, moveToBack, moveToFront, paint, putLayer, setLayer, setLayer, setPosition
-
-
-
-
方法详细信息
-
getUI
public DesktopPaneUI getUI()
返回渲染此组件的L&F对象。- 重写:
-
getUI
在JComponent
- 结果
-
呈现此组件的
DesktopPaneUI
对象
-
setUI
@BeanProperty(hidden=true, visualUpdate=true, description="The UI object that implements the Component\'s LookAndFeel.") public void setUI(DesktopPaneUI ui)
设置渲染此组件的L&F对象。- 参数
-
ui
- DesktopPaneUI L&F对象 - 另请参见:
-
UIDefaults.getUI(javax.swing.JComponent)
-
setDragMode
@BeanProperty(enumerationValues={"JDesktopPane.LIVE_DRAG_MODE","JDesktopPane.OUTLINE_DRAG_MODE"}, description="Dragging style for internal frame children.") public void setDragMode(int dragMode)
设置桌面窗格使用的“拖动样式”。 由于性能或美观原因,您可能需要更改为某种模式。- 参数
-
dragMode
- 用于桌面中项目的拖动样式 - 从以下版本开始:
- 1.3
- 另请参见:
-
LIVE_DRAG_MODE
,OUTLINE_DRAG_MODE
-
getDragMode
public int getDragMode()
获取桌面窗格使用的当前“拖动样式”。- 结果
-
Live_DRAG_MODE
或OUTLINE_DRAG_MODE
- 从以下版本开始:
- 1.3
- 另请参见:
-
setDragMode(int)
-
getDesktopManager
public DesktopManager getDesktopManager()
返回处理桌面特定UI操作的DesktopManger
。- 结果
-
处理桌面特定UI操作的
DesktopManger
-
setDesktopManager
@BeanProperty(description="Desktop manager to handle the internal frames in the desktop pane.") public void setDesktopManager(DesktopManager d)
设置将处理桌面专用UI操作的DesktopManger
。 这可能被LookAndFeel
覆盖。- 参数
-
d
- 要使用的DesktopManager
-
updateUI
public void updateUI()
来自UIManager
通知表明L&F已经改变了。 用UIManager
替换最新版本的当前UI对象。- 重写:
-
updateUI
在JComponent
- 另请参见:
-
JComponent.updateUI()
-
getUIClassID
@BeanProperty(bound=false) public String getUIClassID()
返回呈现此组件的L&F类的名称。- 重写:
-
getUIClassID
在JComponent
- 结果
- 字符串“DesktopPaneUI”
- 另请参见:
-
JComponent.getUIClassID()
,UIDefaults.getUI(javax.swing.JComponent)
-
getAllFrames
@BeanProperty(bound=false) public JInternalFrame[] getAllFrames()
返回目前在桌面上显示的所有JInternalFrames
。 返回图标化框架和展开框架。- 结果
-
一个
JInternalFrame
对象的数组
-
getSelectedFrame
public JInternalFrame getSelectedFrame()
返回当前活动JInternalFrame
这个JDesktopPane
,或null
如果没有JInternalFrame
当前处于活动状态。- 结果
-
当前有效
JInternalFrame
或null
- 从以下版本开始:
- 1.3
-
setSelectedFrame
public void setSelectedFrame(JInternalFrame f)
设置当前活动JInternalFrame
这个JDesktopPane
。 该方法用于桥接JDesktopPane和平台实现代码之间的包间隙,不应直接调用。 为了可视化地选择客户机必须调用JInternalFrame.setSelected(true)来激活帧的帧。- 参数
-
f
- 当前选中的内部框架 - 从以下版本开始:
- 1.3
- 另请参见:
-
JInternalFrame.setSelected(boolean)
-
getAllFramesInLayer
public JInternalFrame[] getAllFramesInLayer(int layer)
返回当前显示在桌面的指定层中的所有JInternalFrames
。 返回图标化帧以及扩展帧。- 参数
-
layer
- 指定桌面层的int - 结果
-
一个
JInternalFrame
对象的数组 - 另请参见:
-
JLayeredPane
-
remove
public void remove(Component comp)
从此容器中删除指定的组件。 此方法还通知布局管理器通过removeLayoutComponent
方法从该容器的布局中删除组件。该方法更改布局相关信息,因此使组件层次结构无效。 如果已经显示了容器,则此后必须验证层次结构以反映更改。
- 重写:
-
remove
在Container
- 参数
-
comp
- 要删除的组件 - 另请参见:
-
Container.add(java.awt.Component)
,Container.invalidate()
,Container.validate()
,Container.remove(int)
-
selectFrame
public JInternalFrame selectFrame(boolean forward)
在此桌面窗格中选择下一个JInternalFrame
。- 参数
-
forward
- 一个布尔值,表示选择哪个方向;true
用于转发,false
用于向后 - 结果
-
所选的JInternalFrame或
null
如果没有选择) - 从以下版本开始:
- 1.6
-
addImpl
protected void addImpl(Component comp, Object constraints, int index)
在指定的索引处将指定的组件添加到此容器。 此方法还通知布局管理器通过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
在JLayeredPane
- 参数
-
comp
- 要添加的组件 -
constraints
- 表示此组件的布局约束的对象 -
index
- 容器列表中要插入组件的位置,其中-1
表示附加到最后 - 从以下版本开始:
- 1.6
- 另请参见:
-
Container.add(Component)
,Container.add(Component, int)
,Container.add(Component, java.lang.Object)
,Container.invalidate()
,LayoutManager
,LayoutManager2
-
remove
public void remove(int index)
从此窗格中删除索引的组件。 这是绝对的索引,忽略了层。- 重写:
-
remove
在JLayeredPane
- 参数
-
index
- 一个int指定要删除的组件 - 从以下版本开始:
- 1.6
- 另请参见:
-
JLayeredPane.getIndexOf(java.awt.Component)
-
removeAll
public void removeAll()
从此容器中删除所有组件。- 重写:
-
removeAll
在JLayeredPane
- 从以下版本开始:
- 1.6
- 另请参见:
-
Container.add(java.awt.Component)
,Container.remove(int)
,Container.invalidate()
-
setComponentZOrder
public void setComponentZOrder(Component comp, int index)
将指定的组件移动到容器中指定的z顺序索引。 z次序确定组件被绘制的顺序; 首先使用最高z阶涂料的组分,最后使用最低z阶涂料的组分。 在组件重叠的地方,具有较低z阶的组件涂覆在具有较高z阶的组件上。如果组件是某个其他容器的子对象,则在添加到此容器之前将其从该容器中删除。 该方法与
java.awt.Container.add(Component, int)
之间的重要区别在于,该方法不会在组件上调用removeNotify
,同时将其从其先前的容器中删除,除非必要时,以及底层本机窗口系统允许。 这样,如果组件具有键盘焦点,则在移动到新位置时会保持焦点。此属性保证仅适用于轻型非
Container
组件。该方法更改布局相关信息,因此使组件层次结构无效。
注意 :并非所有平台都支持将重量级组件的z顺序从一个容器更改为另一个,而无需调用
removeNotify
。 无法检测平台是否支持此功能,因此开发人员不应作出任何假设。- 重写:
-
setComponentZOrder
在Container
- 参数
-
comp
- 要移动的组件 -
index
- 容器列表中插入组件的位置,其中getComponentCount()
附加到最后 - 从以下版本开始:
- 1.6
- 另请参见:
-
Container.getComponentZOrder(java.awt.Component)
,Container.invalidate()
-
paramString
protected String paramString()
返回此JDesktopPane
的字符串表示JDesktopPane
。 该方法仅用于调试目的,并且返回的字符串的内容和格式可能因实现而异。 返回的字符串可能为空,但可能不是null
。- 重写:
-
paramString
在JLayeredPane
- 结果
-
这个
JDesktopPane
的字符串表示JDesktopPane
-
getAccessibleContext
@BeanProperty(bound=false) public AccessibleContext getAccessibleContext()
获取AccessibleContext
与此相关JDesktopPane
。 对于桌面窗格,该AccessibleContext
需要一个形式AccessibleJDesktopPane
。 如有必要,将创建一个新的AccessibleJDesktopPane
实例。- Specified by:
-
getAccessibleContext
在接口Accessible
- 重写:
-
getAccessibleContext
在JLayeredPane
- 结果
-
一个
AccessibleJDesktopPane
,作为这个AccessibleContext
的JDesktopPane
-
-