模块 java.desktop

类 JDesktopPane

所有已实现的接口:
ImageObserver , MenuContainer , Serializable , Accessible

@JavaBean (defaultProperty ="UI") public class JDesktopPane extends JLayeredPane implements Accessible
用于创建多文档界面或虚拟桌面的容器。您创建 JInternalFrame 对象并将它们添加到 JDesktopPaneJDesktopPane 扩展 JLayeredPane 以管理可能重叠的内部框架。它还维护对 DesktopManager 实例的引用,该实例由 UI 类为当前外观 (L&F) 设置。请注意,JDesktopPane 不支持边框。

此类通常用作 JInternalFrames 的父类,以向 JInternalFrames 提供可插入的 DesktopManager 对象。 L&F 特定实现的 installUI 负责适当地设置 desktopManager 变量。当 JInternalFrame 的父级是 JDesktopPane 时,它应该将大部分行为委托给 desktopManager(关闭、调整大小等)。

有关更多文档和示例,请参阅 如何使用内部框架,这是 The Java Tutorial 中的一个部分。

Warning: Swing 不是线程安全的。有关详细信息,请参阅 Swing 的线程策略

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

自从:
1.2
参见:
  • 字段详细信息

  • 构造方法详细信息

    • JDesktopPane

      public JDesktopPane()
      创建一个新的 JDesktopPane
  • 方法详情

    • 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 对象
      参见:
    • 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
      参见:
    • getDragMode

      public int getDragMode()
      获取桌面窗格使用的当前“拖动样式”。
      返回:
      Live_DRAG_MODEOUTLINE_DRAG_MODE
      自从:
      1.3
      参见:
    • 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
      参见:
    • getUIClassID

      @BeanProperty (bound =false) public String  getUIClassID()
      返回呈现此组件的 L&F 类的名称。
      重写:
      getUIClassID 在类 JComponent
      返回:
      字符串“DesktopPaneUI”
      参见:
    • getAllFrames

      @BeanProperty (bound =false) public JInternalFrame [] getAllFrames()
      返回当前显示在桌面上的所有 JInternalFrames。返回图标化框架和扩展框架。
      返回:
      JInternalFrame 对象数组
    • getSelectedFrame

      public JInternalFrame  getSelectedFrame()
      返回此 JDesktopPane 中当前活动的 JInternalFrame,如果当前没有 JInternalFrame 处于活动状态,则返回 null
      返回:
      当前活动的 JInternalFramenull
      自从:
      1.3
    • setSelectedFrame

      public void setSelectedFrame(JInternalFrame  f)
      在此 JDesktopPane 中设置当前活动的 JInternalFrame。此方法用于弥合 JDesktopPane 与平台实现代码之间的封装间隙,不应直接调用。要直观地选择框架,客户端必须调用 JInternalFrame.setSelected(true) 来激活框架。
      参数:
      f - 当前选择的内部框架
      自从:
      1.3
      参见:
    • getAllFramesInLayer

      public JInternalFrame [] getAllFramesInLayer(int layer)
      返回桌面指定层当前显示的所有JInternalFrames。返回图标化框架和扩展框架。
      参数:
      layer - 指定桌面层的 int
      返回:
      JInternalFrame 对象数组
      参见:
    • selectFrame

      public JInternalFrame  selectFrame(boolean forward)
      选择此桌面窗格中的下一个 JInternalFrame
      参数:
      forward - 指示选择方向的boolean; true 向前,false 向后
      返回:
      被选中的 JInternalFrame 或 null 如果没有被选中
      自从:
      1.6
    • addImpl

      protected void addImpl(Component  comp, Object  constraints, int index)
      将指定的组件添加到此容器的指定索引处。此方法还通知布局管理器通过 addLayoutComponent 方法使用指定的约束对象将组件添加到此容器的布局。

      约束由正在使用的特定布局管理器定义。例如,BorderLayout 类定义了五个约束:BorderLayout.NORTHBorderLayout.SOUTHBorderLayout.EASTBorderLayout.WESTBorderLayout.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 表示追加到末尾
      自从:
      1.6
      参见:
    • remove

      public void remove(int index)
      从此窗格中删除索引组件。这是绝对索引,忽略图层。
      重写:
      remove 在类 JLayeredPane
      参数:
      index - 指定要删除的组件的 int
      自从:
      1.6
      参见:
    • removeAll

      public void removeAll()
      从此容器中删除所有组件。
      重写:
      removeAll 在类 JLayeredPane
      自从:
      1.6
      参见:
    • setComponentZOrder

      public void setComponentZOrder(Component  comp, int index)
      将指定组件移动到容器中指定的 z 顺序索引。 z-order 决定了组件被绘制的顺序;具有最高 z 顺序的组件首先绘制,具有最低 z 顺序的组件最后绘制。在组件重叠的地方,具有较低 z 顺序的组件会重写具有较高 z 顺序的组件。

      如果该组件是某个其他容器的子组件,则在添加到该容器之前将其从该容器中移除。此方法与 java.awt.Container.add(Component, int) 之间的重要区别在于,除非必要且底层本机窗口系统允许,否则此方法不会在组件上调用 removeNotify 并将其从其先前的容器中删除。这样,如果组件有键盘焦点,它会在移动到新位置时保持焦点。

      此属性保证仅适用于轻量级非 Container 组件。

      此方法更改与布局相关的信息,因此使组件层次结构无效。

      笔记:并非所有平台都支持在不调用 removeNotify 的情况下将重量级组件的 z 顺序从一个容器更改为另一个容器。无法检测平台是否支持此功能,因此开发人员不应做出任何假设。

      重写:
      setComponentZOrder 在类 Container
      参数:
      comp - 要移动的组件
      index - 容器列表中要插入组件的位置,其中 getComponentCount() 附加到末尾
      自从:
      1.6
      参见:
    • paramString

      protected String  paramString()
      返回此 JDesktopPane 的字符串表示形式。此方法仅用于调试目的,返回字符串的内容和格式可能因实现而异。返回的字符串可能为空,但可能不是 null
      重写:
      paramString 在类 JLayeredPane
      返回:
      这个 JDesktopPane 的字符串表示
    • getAccessibleContext

      @BeanProperty (bound =false) public AccessibleContext  getAccessibleContext()
      获取与此 JDesktopPane 关联的 AccessibleContext。对于桌面窗格,AccessibleContext 采用 AccessibleJDesktopPane 的形式。如有必要,将创建一个新的 AccessibleJDesktopPane 实例。
      指定者:
      getAccessibleContext 在接口 Accessible
      重写:
      getAccessibleContext 在类 JLayeredPane
      返回:
      一个 AccessibleJDesktopPane 作为这个 JDesktopPaneAccessibleContext