- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JLayeredPane
-
- javax.swing.JDesktopPane
-
- 实现的所有接口
-
ImageObserver
,MenuContainer
,Serializable
,Accessible
@JavaBean(defaultProperty="UI") public class JDesktopPane extends JLayeredPane implements Accessible
用于创建多文档界面或虚拟桌面的容器。 您创建JInternalFrame
对象并将其添加到JDesktopPane
。JDesktopPane
扩展JLayeredPane
以管理可能重叠的内部帧。 它还维护对DesktopManager
实例的引用,该实例由UI类为当前外观(L&F)设置。 请注意,JDesktopPane
不支持边框。这个类通常被用作父
JInternalFrames
,以提供一个可插入DesktopManager
对象到JInternalFrames
。 所述installUI
的L&F具体实现的是负责设置desktopManager
适当地可变。 当JInternalFrame
的父JInternalFrame
是JDesktopPane
,它应将其大部分行为委托给desktopManager
(关闭,调整大小等)。有关更多文档和示例,请参阅“Java教程”中的 How to Use Internal Frames部分。
警告: Swing不是线程安全的。 有关更多信息,请参阅Swing's Threading Policy 。
警告:此类的序列化对象与以后的Swing版本不兼容。 当前的序列化支持适用于运行相同版本Swing的应用程序之间的短期存储或RMI。 从1.4开始,
java.beans
软件包中添加了对所有JavaBeansjava.beans
长期存储的支持。 请参阅XMLEncoder
。- 从以下版本开始:
- 1.2
- 另请参见:
-
JInternalFrame
,JInternalFrame.JDesktopIcon
,DesktopManager
, Serialized Form
-
-
嵌套类汇总
嵌套类 变量和类型 类 描述 protected class
JDesktopPane.AccessibleJDesktopPane
此类实现JDesktopPane
类的可访问性支持。-
嵌套类/接口声明在类 javax.swing.JLayeredPane
JLayeredPane.AccessibleJLayeredPane
-
嵌套类/接口声明在类 javax.swing.JComponent
JComponent.AccessibleJComponent
-
嵌套类/接口声明在类 java.awt.Container
Container.AccessibleAWTContainer
-
-
字段汇总
字段 变量和类型 字段 描述 static int
LIVE_DRAG_MODE
表示正在拖动的项目的整个内容应显示在桌面窗格内。static int
OUTLINE_DRAG_MODE
表示仅拖动项目的轮廓应显示在桌面窗格内。-
声明的属性在类 javax.swing.JLayeredPane
DEFAULT_LAYER, DRAG_LAYER, FRAME_CONTENT_LAYER, LAYER_PROPERTY, MODAL_LAYER, PALETTE_LAYER, POPUP_LAYER
-
声明的属性在类 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
-
-
构造方法摘要
构造方法 构造器 描述 JDesktopPane()
创建一个新的JDesktopPane
。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 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
removeAll()
从此容器中删除所有组件。JInternalFrame
selectFrame(boolean forward)
在此桌面窗格中选择下一个JInternalFrame
。void
setComponentZOrder(Component comp, int index)
将指定的组件移动到容器中指定的z-order索引。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已更改的通知。-
声明方法的类 javax.swing.JLayeredPane
getComponentCountInLayer, getComponentsInLayer, getComponentToLayer, getIndexOf, getLayer, getLayer, getLayeredPaneAbove, getObjectForLayer, getPosition, highestLayer, insertIndexForLayer, isOptimizedDrawingEnabled, lowestLayer, moveToBack, moveToFront, paint, putLayer, setLayer, setLayer, setPosition
-
声明方法的类 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, 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
-
声明方法的类 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, remove, removeContainerListener, 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
-
-
-
-
字段详细信息
-
LIVE_DRAG_MODE
public static final int LIVE_DRAG_MODE
表示正在拖动的项目的整个内容应显示在桌面窗格内。- 另请参见:
-
OUTLINE_DRAG_MODE
,setDragMode(int)
, 常数字段值
-
OUTLINE_DRAG_MODE
public static final int OUTLINE_DRAG_MODE
表示仅拖动项目的轮廓应显示在桌面窗格内。- 另请参见:
-
LIVE_DRAG_MODE
,setDragMode(int)
, 常数字段值
-
-
方法详细信息
-
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
。- 结果
-
DesktopManger
处理特定于桌面的UI操作
-
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
-
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)
。如果组件不是此容器的祖先且具有非null父级,则在将其添加到此容器之前,将从其当前父级中删除该组件。
如果程序需要跟踪对容器的每个添加请求,则这是覆盖的方法,因为所有其他添加方法都遵循此方法。 覆盖方法通常应该包括对超类的方法版本的调用:
super.addImpl(comp, constraints, index)
此方法更改与布局相关的信息,因此使组件层次结构无效。 如果已显示容器,则必须在此后验证层次结构以显示添加的组件。
- 重写:
-
addImpl
在类Container
- 参数
-
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-order索引。 z顺序决定了组件的绘制顺序; 首先是具有最高z次序涂料的组件,最后是具有最低z次序涂料的组件。 在组件重叠的情况下,具有较低z次序的组件在具有较高z次序的组件上绘制。如果组件是某个其他容器的子组件,则在将其添加到此容器之前将其从该容器中删除。 此方法与
java.awt.Container.add(Component, int)
之间的重要区别在于,除非必要且底层本机窗口系统允许,否则此方法在将组件从其先前容器中删除时不会调用该组件上的removeNotify
。 这样,如果组件具有键盘焦点,则在移动到新位置时它会保持焦点。此属性保证仅适用于轻量级非
Container
组件。此方法更改与布局相关的信息,因此使组件层次结构无效。
注意 :并非所有平台都支持在不调用
removeNotify
情况下将重量级组件的z顺序从一个容器更改为另一个容器。 无法检测平台是否支持此功能,因此开发人员不应做出任何假设。- 重写:
-
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
- 结果
-
an
AccessibleJDesktopPane
that serves as theAccessibleContext
of thisJDesktopPane
-
-