- java.lang.Object
-
- javax.swing.ScrollPaneLayout
-
- All Implemented Interfaces:
-
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
。- 从以下版本开始:
- 1.2
- 另请参见:
-
JScrollPane
,JViewport
, Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 static class
ScrollPaneLayout.UIResource
UI资源版本为ScrollPaneLayout
。
-
Field Summary
Fields Modifier and Type Field 描述 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
垂直滚动条的显示策略。-
Fields inherited from interface 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
-
-
构造方法摘要
构造方法 Constructor 描述 ScrollPaneLayout()
-
方法摘要
所有方法 接口方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 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版本的Swing1.1由JScrollPane.getViewportBorderBounds()
替换。void
layoutContainer(Container parent)
吹出滚屏。Dimension
minimumLayoutSize(Container parent)
ScrollPane
的最小大小是ScrollPane
的大小加上视口的最小大小,加上滚动窗口的viewportBorder插入,加上可见标题的最小大小,以及displayPolicy不是永远不会滚动条的最小大小。Dimension
preferredLayoutSize(Container parent)
ScrollPane
的首选大小是插图的大小,加上视口的首选大小,加上可见标题的首选大小,加上当前视图和当前滚动条displayPolicies将显示的滚动条的首选大小。void
removeLayoutComponent(Component c)
从布局中删除指定的组件。void
setHorizontalScrollBarPolicy(int x)
设置水平滚动条显示策略。void
setVerticalScrollBarPolicy(int x)
设置垂直滚动条显示策略。void
syncWithScrollPane(JScrollPane sp)
将ScrollPaneLayout设置为JScrollPane
的LayoutManager后调用此方法。
-
-
-
字段详细信息
-
viewport
protected JViewport viewport
滚动窗口的视口小孩。 默认是空的JViewport
。
-
vsb
protected JScrollBar vsb
滚动盘的垂直滚动条小孩。 默认是JScrollBar
。
-
hsb
protected JScrollBar hsb
滚动盘的水平滚动条小孩。 默认是JScrollBar
。
-
rowHead
protected JViewport rowHead
行标题子。 默认值为null
。
-
colHead
protected JViewport colHead
列标题子。 默认值为null
。
-
lowerLeft
protected Component lowerLeft
要显示在左下角的组件。 默认值为null
。
-
lowerRight
protected Component lowerRight
要显示在右下角的组件。 默认值为null
。
-
upperLeft
protected Component upperLeft
组件显示在左上角。 默认值为null
。
-
upperRight
protected Component upperRight
组件显示在右上角。 默认值为null
。
-
vsbPolicy
protected int vsbPolicy
垂直滚动条的显示策略。 默认值为ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED
。此字段已过时,请改用
JScrollPane
字段。
-
hsbPolicy
protected int hsbPolicy
水平滚动条的显示策略。 默认值为ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED
。此字段已过时,请改用
JScrollPane
字段。
-
-
方法详细信息
-
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
- Specified by:
-
addLayoutComponent
在接口LayoutManager
- 参数
-
s
- 组件标识符 -
c
- 要添加的组件 - 异常
-
IllegalArgumentException
- 如果s
是无效的密钥
-
removeLayoutComponent
public void removeLayoutComponent(Component c)
从布局中删除指定的组件。- Specified by:
-
removeLayoutComponent
在接口LayoutManager
- 参数
-
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
- 一个提供显示策略的int - 异常
-
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
的首选大小是插图的大小,加上视口的首选大小,加上可见标题的首选大小,以及给定当前视图和当前滚动条displayPolicies的滚动条的首选大小。请注意,rowHeader计算为首选宽度的一部分,colHeader是作为首选大小的一部分计算的。
- Specified by:
-
preferredLayoutSize
在接口LayoutManager
- 参数
-
parent
- 将被布置的Container
- 结果
-
一个
Dimension
对象,指定视口和任何滚动条的首选大小 - 另请参见:
-
ViewportLayout
,LayoutManager
-
minimumLayoutSize
public Dimension minimumLayoutSize(Container parent)
ScrollPane
的最小大小是ScrollPane
大小加上视口的最小尺寸,加上滚动窗口的viewportBorder插入,加上可见标题的最小大小,加上displayPolicy不是永远不会滚动条的最小大小。- Specified by:
-
minimumLayoutSize
在接口LayoutManager
- 参数
-
parent
- 将被布置的Container
- 结果
-
指定最小大小的
Dimension
对象 - 另请参见:
-
LayoutManager.preferredLayoutSize(java.awt.Container)
-
layoutContainer
public void layoutContainer(Container parent)
吹出滚屏。 组件的定位取决于以下约束:- 行标题(如果存在和可见)获取其首选宽度和视口的高度。
- 列标题(如果存在和可见)获取其首选高度和视口宽度。
- 如果需要垂直滚动条,即如果视口的范围高度小于其视图高度,或者如果
displayPolicy
,则将其视为相对于其尺寸的行标题,并使其可见。 - 如果需要一个水平滚动条,它将被视为列标题(请参阅上面关于垂直滚动条的段落)。
- 如果滚动窗格具有非
null
viewportBorder
,则viewportBorder
分配空间。 - 视口在计算先前的约束之后获得可用空间。
- 角部件(如果提供)与滚动条和标题的末端对齐。 如果有垂直滚动条,则出现右边角; 如果有水平滚动条,则出现下角; 一个行标题左拐角,一个列标题变成上角。
- Specified by:
-
layoutContainer
在接口LayoutManager
- 参数
-
parent
-Container
布置
-
getViewportBorderBounds
@Deprecated public Rectangle getViewportBorderBounds(JScrollPane scrollpane)
已过时。 由JDK版本Swing1.1替换为JScrollPane.getViewportBorderBounds()
。返回指定滚动窗格视口周围边框的边界。- 参数
-
scrollpane
-的实例JScrollPane
- 结果
- 视口边框的大小和位置
-
-