Module java.desktop
Package javax.swing

Class ScrollPaneLayout

java.lang.Object
javax.swing.ScrollPaneLayout
所有已实现的接口:
LayoutManager, Serializable, ScrollPaneConstants
直接已知的子类:
ScrollPaneLayout.UIResource

public class ScrollPaneLayout extends Object implements LayoutManager, ScrollPaneConstants, Serializable
JScrollPane 使用的布局管理器。 JScrollPaneLayout 负责九个组件:一个视口、两个滚动条、一个行标题、一个列标题和四个“角”组件。

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

自 JDK 1.2 起:
1.2
另请参阅:
  • Field Details

  • Constructor Details

    • ScrollPaneLayout

      public ScrollPaneLayout()
      构造一个 ScrollPaneLayout
  • Method Details

    • syncWithScrollPane

      public void syncWithScrollPane(JScrollPane sp)
      在将 ScrollPaneLayout 设置为 JScrollPane 的 LayoutManager 后调用此方法。它初始化通常由 addLayoutComponent 设置的所有内部字段。例如:
       ScrollPaneLayout mySPLayout = new ScrollPanelLayout() {
           public void layoutContainer(Container p) {
               super.layoutContainer(p);
               // do some extra work here ...
           }
       };
       scrollpane.setLayout(mySPLayout):
       
      参数:
      sp - JScrollPane 的实例
    • addSingletonComponent

      protected Component addSingletonComponent(Component oldC, Component newC)
      移除现有组件。当添加新组件(例如左上角或垂直滚动条)时,必须移除旧组件(如果存在)。

      此方法返回 newC。如果 oldC 不等于 newC 且非 null,则将其从其父级中移除。

      参数:
      oldC - 要替换的 Component
      newC - 要添加的 Component
      返回:
      newC
    • addLayoutComponent

      public void addLayoutComponent(String s, Component c)
      将指定的组件添加到布局中。布局使用以下之一进行标识:
      • ScrollPaneConstants.VIEWPORT
      • ScrollPaneConstants.VERTICAL_SCROLLBAR
      • ScrollPaneConstants.HORIZONTAL_SCROLLBAR
      • ScrollPaneConstants.ROW_HEADER
      • ScrollPaneConstants.COLUMN_HEADER
      • ScrollPaneConstants.LOWER_LEFT_CORNER
      • ScrollPaneConstants.LOWER_RIGHT_CORNER
      • ScrollPaneConstants.UPPER_LEFT_CORNER
      • ScrollPaneConstants.UPPER_RIGHT_CORNER
      指定者:
      addLayoutComponent 在接口 LayoutManager
      参数:
      s - 组件标识符
      c - 要添加的组件
      抛出:
      IllegalArgumentException - 如果 s 是无效键
    • removeLayoutComponent

      public void removeLayoutComponent(Component c)
      从布局中移除指定的组件。
      指定者:
      removeLayoutComponent 在接口 LayoutManager中指定
      参数:
      c - 要移除的组件
    • getVerticalScrollBarPolicy

      public int getVerticalScrollBarPolicy()
      返回垂直滚动条显示策略。
      返回:
      一个整数,表示显示策略
      参见:
    • setVerticalScrollBarPolicy

      public void setVerticalScrollBarPolicy(int x)
      设置垂直滚动条显示策略。选项包括:
      • ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED
      • ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER
      • ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS
      注意:应用程序应使用此方法的JScrollPane版本。此方法仅用于向后兼容Swing 1.0.2(及更早版本)中的此类。
      参数:
      x - 表示显示策略的整数
      抛出:
      IllegalArgumentException - 如果x是无效的垂直滚动条策略,如上所列
    • getHorizontalScrollBarPolicy

      public int getHorizontalScrollBarPolicy()
      返回水平滚动条显示策略。
      返回:
      一个整数,表示显示策略
      参见:
    • setHorizontalScrollBarPolicy

      public void setHorizontalScrollBarPolicy(int x)
      设置水平滚动条显示策略。选项包括:
      • ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED
      • ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER
      • ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS
      注意:应用程序应使用此方法的JScrollPane版本。此方法仅用于向后兼容Swing 1.0.2(及更早版本)中的此类。
      参数:
      x - 表示显示策略的整数
      抛出:
      IllegalArgumentException - 如果x不是有效的水平滚动条策略,如上所列
    • getViewport

      public JViewport getViewport()
      返回显示可滚动内容的JViewport对象。
      返回:
      显示可滚动内容的JViewport对象
      参见:
    • getHorizontalScrollBar

      public JScrollBar getHorizontalScrollBar()
      返回处理水平滚动的JScrollBar对象。
      返回:
      处理水平滚动的JScrollBar对象
      参见:
    • getVerticalScrollBar

      public JScrollBar getVerticalScrollBar()
      返回处理垂直滚动的JScrollBar对象。
      返回:
      处理垂直滚动的JScrollBar对象
      参见:
    • getRowHeader

      public JViewport getRowHeader()
      返回作为行标题的JViewport对象。
      返回:
      作为行标题的JViewport对象
      参见:
    • getColumnHeader

      public JViewport getColumnHeader()
      返回作为列标题的JViewport对象。
      返回:
      作为列标题的JViewport对象
      参见:
    • getCorner

      public Component getCorner(String key)
      返回指定角落的Component
      参数:
      key - 指定角落的String
      返回:
      指定角落的Component,如ScrollPaneConstants中定义;如果key不是四个角落之一,则返回null
      参见:
    • preferredLayoutSize

      public Dimension preferredLayoutSize(Container parent)
      ScrollPane的首选大小是插图的大小加上视口的首选大小,再加上可见标题的首选大小,再加上根据当前视图和当前滚动条显示策略将出现的滚动条的首选大小。

      请注意,rowHeader是首选宽度的一部分,colHeader是首选大小的一部分。

      指定者:
      preferredLayoutSize 在接口 LayoutManager中指定
      参数:
      parent - 将进行布局的Container
      返回:
      一个指定首选大小的Dimension对象,包括视口和任何滚动条的首选大小
      参见:
    • minimumLayoutSize

      public Dimension minimumLayoutSize(Container parent)
      ScrollPane的最小大小是插图的大小加上视口的最小大小,再加上滚动窗格的视口边框插图,再加上可见标题的最小大小,再加上显示策略不是NEVER的滚动条的最小大小。
      指定者:
      minimumLayoutSize 在接口 LayoutManager中指定
      参数:
      parent - 将进行布局的Container
      返回:
      一个指定最小大小的Dimension对象
      参见:
    • layoutContainer

      public void layoutContainer(Container parent)
      布局滚动窗格。组件的定位取决于以下约束:
      • 如果存在且可见的行标题,则其获取首选宽度和视口的高度。
      • 如果存在且可见的列标题,则其获取首选高度和视口的宽度。
      • 如果需要垂直滚动条,即如果视口的范围高度小于其视图高度或displayPolicy为ALWAYS,则它将像行标题一样处理其尺寸并显示。
      • 如果需要水平滚动条,则将其视为列标题(请参阅上面关于垂直滚动条的段落)。
      • 如果滚动窗格具有非nullviewportBorder,则为其分配空间。
      • 视口获取在考虑前述约束后可用的空间。
      • 如果提供了角落组件,则将其与滚动条和标题的末端对齐。如果存在垂直滚动条,则右下角出现;如果存在水平滚动条,则下方角出现;行标题获取左上角,列标题获取右上角。
      指定者:
      layoutContainer 在接口 LayoutManager中指定
      参数:
      parent - 要布局的Container
    • getViewportBorderBounds

      @Deprecated public Rectangle getViewportBorderBounds(JScrollPane scrollpane)
      Deprecated.
      As of JDK version Swing1.1 replaced by JScrollPane.getViewportBorderBounds().
      返回指定滚动窗格视口周围边框的边界。
      参数:
      scrollpane - JScrollPane的一个实例
      返回:
      视口边框的大小和位置