javax.swing

接口
异常
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(Remote Method Invocation,远程方法调用)。从 1.4 版本开始,已在 java.beans 包中添加了支持所有 JavaBeansTM 长期存储的功能。请参见 XMLEncoder

另请参见:
JScrollPane, JViewport

嵌套类摘要
static class ScrollPaneLayout.UIResource
          ScrollPaneLayout 的 UI 资源版本。
 
字段摘要
protected  JViewport colHead
          子级列标题。
protected  JScrollBar hsb
          滚动窗格的子级水平滚动条。
protected  int hsbPolicy
          水平滚动条的显示策略。
protected  Component lowerLeft
          左下角显示的组件。
protected  Component lowerRight
          右下角显示的组件。
protected  JViewport rowHead
          子级行标题。
protected  Component upperLeft
          左上角显示的组件。
protected  Component upperRight
          右上角显示的组件。
protected  JViewport viewport
          滚动窗格的子级视口。
protected  JScrollBar vsb
          滚动窗格的子级垂直滚动条。
protected  int vsbPolicy
          垂直滚动条的显示策略。
 
从接口 javax.swing.ScrollPaneConstants 继承的字段
COLUMN_HEADER, HORIZONTAL_SCROLLBAR, HORIZONTAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_AS_NEEDED, HORIZONTAL_SCROLLBAR_NEVER, HORIZONTAL_SCROLLBAR_POLICY, LOWER_LEADING_CORNER, LOWER_LEFT_CORNER, LOWER_RIGHT_CORNER, LOWER_TRAILING_CORNER, ROW_HEADER, UPPER_LEADING_CORNER, UPPER_LEFT_CORNER, UPPER_RIGHT_CORNER, UPPER_TRAILING_CORNER, VERTICAL_SCROLLBAR, VERTICAL_SCROLLBAR_ALWAYS, VERTICAL_SCROLLBAR_AS_NEEDED, VERTICAL_SCROLLBAR_NEVER, VERTICAL_SCROLLBAR_POLICY, VIEWPORT
 
构造方法摘要
ScrollPaneLayout()
           
 
方法摘要
 void addLayoutComponent(String s, Component c)
          将指定的组件添加到布局中。
protected  Component addSingletonComponent(Component oldC, Component newC)
          移除现有组件。
 JViewport getColumnHeader()
          返回列标题对应的 JViewport 对象。
 Component getCorner(String key)
          返回位于指定角的 Component
 JScrollBar getHorizontalScrollBar()
          返回处理水平滚动的 JScrollBar 对象。
 int getHorizontalScrollBarPolicy()
          返回水平滚动条的显示策略。
 JViewport getRowHeader()
          返回行标题对应的 JViewport 对象。
 JScrollBar getVerticalScrollBar()
          返回处理垂直滚动的 JScrollBar 对象。
 int getVerticalScrollBarPolicy()
          返回垂直滚动条的显示策略。
 JViewport getViewport()
          返回显示滚动组件内容的 JViewport 对象。
 Rectangle getViewportBorderBounds(JScrollPane scrollpane)
          已过时。 从 JDK version Swing1.1 开始,由 JScrollPane.getViewportBorderBounds() 取代。
 void layoutContainer(Container parent)
          布置滚动窗格。
 Dimension minimumLayoutSize(Container parent)
          ScrollPane 的最小大小是 insets 加上视口最小大小,加上可见标题的最小大小,加上 displayPolicy 不为 NEVER 的滚动条的最小大小。
 Dimension preferredLayoutSize(Container parent)
          ScrollPane 的首选大小是 insets 的大小加上视口的首选大小、可见标题首选大小以及滚动条的首选大小,它按照给定的当前视图和当前滚动条策略显示。
 void removeLayoutComponent(Component c)
          从布局中移除指定的组件。
 void setHorizontalScrollBarPolicy(int x)
          设置水平滚动条显示策略。
 void setVerticalScrollBarPolicy(int x)
          设置垂直滚动条的显示策略。
 void syncWithScrollPane(JScrollPane sp)
          在 ScrollPaneLayout 被设置为 JScrollPane 的 LayoutManager 后,此方法被调用。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

viewport

protected JViewport viewport
滚动窗格的子级视口。默认情况下为空 JViewport

另请参见:
JScrollPane.setViewport(javax.swing.JViewport)

vsb

protected JScrollBar vsb
滚动窗格的子级垂直滚动条。默认情况下为 JScrollBar

另请参见:
JScrollPane.setVerticalScrollBar(javax.swing.JScrollBar)

hsb

protected JScrollBar hsb
滚动窗格的子级水平滚动条。默认情况下为 JScrollBar

另请参见:
JScrollPane.setHorizontalScrollBar(javax.swing.JScrollBar)

rowHead

protected JViewport rowHead
子级行标题。默认情况下为 null

另请参见:
JScrollPane.setRowHeader(javax.swing.JViewport)

colHead

protected JViewport colHead
子级列标题。默认情况下为 null

另请参见:
JScrollPane.setColumnHeader(javax.swing.JViewport)

lowerLeft

protected Component lowerLeft
左下角显示的组件。默认情况下为 null

另请参见:
JScrollPane.setCorner(java.lang.String, java.awt.Component)

lowerRight

protected Component lowerRight
右下角显示的组件。默认情况下为 null

另请参见:
JScrollPane.setCorner(java.lang.String, java.awt.Component)

upperLeft

protected Component upperLeft
左上角显示的组件。默认情况下为 null

另请参见:
JScrollPane.setCorner(java.lang.String, java.awt.Component)

upperRight

protected Component upperRight
右上角显示的组件。默认情况下为 null

另请参见:
JScrollPane.setCorner(java.lang.String, java.awt.Component)

vsbPolicy

protected int vsbPolicy
垂直滚动条的显示策略。默认情况下为 ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED

该字段已废弃,请用 JScrollPane 字段代替。

另请参见:
JScrollPane.setVerticalScrollBarPolicy(int)

hsbPolicy

protected int hsbPolicy
水平滚动条的显示策略。默认情况下为 ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED

该字段已废弃,请用 JScrollPane 字段代替。

另请参见:
JScrollPane.setHorizontalScrollBarPolicy(int)
构造方法详细信息

ScrollPaneLayout

public ScrollPaneLayout()
方法详细信息

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):
 


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

指定者:
接口 LayoutManager 中的 addLayoutComponent
参数:
s - 组件标识符
c - 要添加的组件
抛出:
IllegalArgumentException - 如果 s 为无效关键字

removeLayoutComponent

public void removeLayoutComponent(Component c)
从布局中移除指定的组件。

指定者:
接口 LayoutManager 中的 removeLayoutComponent
参数:
c - 要移除的组件

getVerticalScrollBarPolicy

public int getVerticalScrollBarPolicy()
返回垂直滚动条的显示策略。

返回:
一个提供显示策略的整数
另请参见:
setVerticalScrollBarPolicy(int)

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(int)

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 对象
另请参见:
JScrollPane.getViewport()

getHorizontalScrollBar

public JScrollBar getHorizontalScrollBar()
返回处理水平滚动的 JScrollBar 对象。

返回:
处理水平滚动的 JScrollBar 对象
另请参见:
JScrollPane.getHorizontalScrollBar()

getVerticalScrollBar

public JScrollBar getVerticalScrollBar()
返回处理垂直滚动的 JScrollBar 对象。

返回:
处理垂直滚动的 JScrollBar 对象
另请参见:
JScrollPane.getVerticalScrollBar()

getRowHeader

public JViewport getRowHeader()
返回行标题对应的 JViewport 对象。

返回:
行标题对应的 JViewport 对象
另请参见:
JScrollPane.getRowHeader()

getColumnHeader

public JViewport getColumnHeader()
返回列标题对应的 JViewport 对象。

返回:
列标题对应的 JViewport 对象
另请参见:
JScrollPane.getColumnHeader()

getCorner

public Component getCorner(String key)
返回位于指定角的 Component

参数:
key - 用于指定角的 String
返回:
位于指定角的 Component,在 ScrollPaneConstants 中的定义;如果 key 不是四个角之一,则返回 null
另请参见:
JScrollPane.getCorner(java.lang.String)

preferredLayoutSize

public Dimension preferredLayoutSize(Container parent)
ScrollPane 的首选大小是 insets 的大小加上视口的首选大小、可见标题首选大小以及滚动条的首选大小,它按照给定的当前视图和当前滚动条策略显示。

注意,rowHeader 是作为 width 首选大小的一部分计算的,colHeader 是作为首选大小的一部分计算的。

指定者:
接口 LayoutManager 中的 preferredLayoutSize
参数:
parent - 将被布置的 Container
返回:
指定视口和任何滚动条的首选大小的 Dimension 对象
另请参见:
ViewportLayout, LayoutManager

minimumLayoutSize

public Dimension minimumLayoutSize(Container parent)
ScrollPane 的最小大小是 insets 加上视口最小大小,加上可见标题的最小大小,加上 displayPolicy 不为 NEVER 的滚动条的最小大小。

指定者:
接口 LayoutManager 中的 minimumLayoutSize
参数:
parent - 将被布置的 Container
返回:
指定最小大小的 Dimension 对象

layoutContainer

public void layoutContainer(Container parent)
布置滚动窗格。组件的放置取决于以下约束:
  • 行标题,如果存在且可见的话,获取它的首选宽度大小以及视口的高度。
  • 列标题,如果存在且可见的话,获取它的首选高度大小以及视口的宽度。
  • 如果需要垂直滚动条,即如果视口的延伸高度小于它的视图高度,或者 displayPolicy 为 ALWAYS,在维度方面它将被视作行标题并且可见。
  • 如果需要水平滚动条,它将被视作列标题(请参阅上段中有关垂直滚动条的内容)。
  • 如果滚动窗格为非 null viewportBorder,将为其分配空间。
  • 视口在满足前面的约束后获取可用的空间。
  • 如果提供了角组件,它将与滚动条和标题的末尾对齐。如果有垂直滚动条,将显示右角;如果有水平滚动条,将显示底角;有行标题将显示左角,有列标题将显示上角。

指定者:
接口 LayoutManager 中的 layoutContainer
参数:
parent - 要布置的 Container

getViewportBorderBounds

@Deprecated
public Rectangle getViewportBorderBounds(JScrollPane scrollpane)
已过时。  从 JDK version Swing1.1 开始,由 JScrollPane.getViewportBorderBounds() 取代。

返回围绕指定滚动窗格视口的边框。

返回:
视口边框的大小和位置