模块  java.desktop
软件包  javax.swing

Class JDesktopPane

  • 实现的所有接口
    ImageObserverMenuContainerSerializableAccessible

    @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的父JInternalFrameJDesktopPane ,它应将其大部分行为委托给desktopManager (关闭,调整大小等)。

    有关更多文档和示例,请参阅“Java教程” How to Use Internal Frames部分。

    警告: Swing不是线程安全的。 有关更多信息,请参阅Swing's Threading Policy

    警告:此类的序列化对象与以后的Swing版本不兼容。 当前的序列化支持适用于运行相同版本Swing的应用程序之间的短期存储或RMI。 从1.4开始, java.beans软件包中添加了对所有JavaBeans java.beans长期存储的支持。 请参阅XMLEncoder

    从以下版本开始:
    1.2
    另请参见:
    JInternalFrameJInternalFrame.JDesktopIconDesktopManagerSerialized Form
    • 构造方法详细信息

      • JDesktopPane

        public JDesktopPane()
        创建一个新的 JDesktopPane
    • 方法详细信息

      • getUI

        public DesktopPaneUI getUI()
        返回呈现此组件的L&F对象。
        重写:
        getUIJComponent
        结果
        呈现此组件的 DesktopPaneUI对象
      • 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_MODEOUTLINE_DRAG_MODE
      • getDragMode

        public int getDragMode()
        获取桌面窗格使用的当前“拖动样式”。
        结果
        Live_DRAG_MODEOUTLINE_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对象。
        重写:
        updateUIJComponent
        另请参见:
        JComponent.updateUI()
      • getAllFrames

        @BeanProperty(bound=false)
        public JInternalFrame[] getAllFrames()
        返回当前显示在桌面上的所有JInternalFrames 返回图标化的帧以及扩展的帧。
        结果
        一组 JInternalFrame对象
      • getSelectedFrame

        public JInternalFrame getSelectedFrame()
        返回当前活动 JInternalFrame在这个 JDesktopPane ,或 null如果没有 JInternalFrame当前处于活动状态。
        结果
        当前有效的 JInternalFramenull
        从以下版本开始:
        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.NORTHBorderLayout.SOUTHBorderLayout.EASTBorderLayout.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()LayoutManagerLayoutManager2
      • 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顺序从一个容器更改为另一个容器。 无法检测平台是否支持此功能,因此开发人员不应做出任何假设。

        重写:
        setComponentZOrderContainer
        参数
        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
        重写:
        getAccessibleContextJLayeredPane
        结果
        an AccessibleJDesktopPane that serves as the AccessibleContext of this JDesktopPane