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
- 另请参阅:
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
ScrollPaneLayout
的 UI 资源版本。 -
Field Summary
Modifier and TypeFieldDescriptionprotected JViewport
列标题子组件。protected JScrollBar
滚动窗格的水平滚动条子组件。protected int
水平滚动条的显示策略。protected Component
显示在左下角的组件。protected Component
显示在右下角的组件。protected JViewport
行标题子组件。protected Component
显示在左上角的组件。protected Component
显示在右上角的组件。protected JViewport
滚动窗格的视口子组件。protected JScrollBar
滚动窗格的垂直滚动条子组件。protected int
垂直滚动条的显示策略。Fields declared in 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 Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
将指定的组件添加到布局中。protected Component
addSingletonComponent
(Component oldC, Component newC) 移除现有组件。返回作为列标题的JViewport
对象。返回指定角落的Component
。返回处理水平滚动的JScrollBar
对象。int
返回水平滚动条的显示策略。返回作为行标题的JViewport
对象。返回处理垂直滚动的JScrollBar
对象。int
返回垂直滚动条的显示策略。返回显示可滚动内容的JViewport
对象。getViewportBorderBounds
(JScrollPane scrollpane) 已弃用。void
layoutContainer
(Container parent) 布局滚动窗格。minimumLayoutSize
(Container parent) ScrollPane
的最小大小是内边距的大小加上视口的最小大小,再加上滚动窗格的视口边框内边距,再加上可见标题的最小大小,再加上显示策略不是 NEVER 的滚动条的最小大小。preferredLayoutSize
(Container parent) ScrollPane
的首选大小是内边距的大小,再加上视口的首选大小,再加上可见标题的首选大小,再加上根据当前视图和当前滚动条显示策略将出现的滚动条的首选大小。void
从布局中移除指定的组件。void
setHorizontalScrollBarPolicy
(int x) 设置水平滚动条的显示策略。void
setVerticalScrollBarPolicy
(int x) 设置垂直滚动条的显示策略。void
在将 ScrollPaneLayout 设置为JScrollPane
的 LayoutManager 后调用此方法。
-
Field Details
-
viewport
滚动窗格的视口子组件。默认为空的JViewport
。- 另请参阅:
-
vsb
滚动窗格的垂直滚动条子组件。默认为JScrollBar
。- 另请参阅:
-
hsb
滚动窗格的水平滚动条子组件。默认为JScrollBar
。- 另请参阅:
-
rowHead
行标题子组件。默认为null
。- 另请参阅:
-
colHead
列标题子组件。默认为null
。- 另请参阅:
-
lowerLeft
显示在左下角的组件。默认为null
。- 另请参阅:
-
lowerRight
显示在右下角的组件。默认为null
。- 另请参阅:
-
upperLeft
显示在左上角的组件。默认为null
。- 另请参阅:
-
upperRight
显示在右上角的组件。默认为null
。- 另请参阅:
-
vsbPolicy
protected int vsbPolicy垂直滚动条的显示策略。默认为ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED
。此字段已过时,请改用
JScrollPane
字段。- 另请参阅:
-
hsbPolicy
protected int hsbPolicy水平滚动条的显示策略。默认为ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED
。此字段已过时,请改用
JScrollPane
字段。- 另请参阅:
-
-
Constructor Details
-
ScrollPaneLayout
public ScrollPaneLayout()构造一个ScrollPaneLayout
。
-
-
Method Details
-
syncWithScrollPane
在将 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
移除现有组件。当添加新组件(例如左上角或垂直滚动条)时,必须移除旧组件(如果存在)。此方法返回
newC
。如果oldC
不等于newC
且非null
,则将其从其父级中移除。- 参数:
-
oldC
- 要替换的Component
-
newC
- 要添加的Component
- 返回:
-
newC
-
addLayoutComponent
将指定的组件添加到布局中。布局使用以下之一进行标识:- 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
从布局中移除指定的组件。- 指定者:
-
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
返回显示可滚动内容的JViewport
对象。- 返回:
-
显示可滚动内容的
JViewport
对象 - 参见:
-
getHorizontalScrollBar
返回处理水平滚动的JScrollBar
对象。- 返回:
-
处理水平滚动的
JScrollBar
对象 - 参见:
-
getVerticalScrollBar
返回处理垂直滚动的JScrollBar
对象。- 返回:
-
处理垂直滚动的
JScrollBar
对象 - 参见:
-
getRowHeader
返回作为行标题的JViewport
对象。- 返回:
-
作为行标题的
JViewport
对象 - 参见:
-
getColumnHeader
返回作为列标题的JViewport
对象。- 返回:
-
作为列标题的
JViewport
对象 - 参见:
-
getCorner
返回指定角落的Component
。- 参数:
-
key
- 指定角落的String
- 返回:
-
指定角落的
Component
,如ScrollPaneConstants
中定义;如果key
不是四个角落之一,则返回null
- 参见:
-
preferredLayoutSize
ScrollPane
的首选大小是插图的大小加上视口的首选大小,再加上可见标题的首选大小,再加上根据当前视图和当前滚动条显示策略将出现的滚动条的首选大小。请注意,rowHeader是首选宽度的一部分,colHeader是首选大小的一部分。
- 指定者:
-
preferredLayoutSize
在接口LayoutManager
中指定 - 参数:
-
parent
- 将进行布局的Container
- 返回:
-
一个指定首选大小的
Dimension
对象,包括视口和任何滚动条的首选大小 - 参见:
-
minimumLayoutSize
ScrollPane
的最小大小是插图的大小加上视口的最小大小,再加上滚动窗格的视口边框插图,再加上可见标题的最小大小,再加上显示策略不是NEVER的滚动条的最小大小。- 指定者:
-
minimumLayoutSize
在接口LayoutManager
中指定 - 参数:
-
parent
- 将进行布局的Container
- 返回:
-
一个指定最小大小的
Dimension
对象 - 参见:
-
layoutContainer
布局滚动窗格。组件的定位取决于以下约束:- 如果存在且可见的行标题,则其获取首选宽度和视口的高度。
- 如果存在且可见的列标题,则其获取首选高度和视口的宽度。
- 如果需要垂直滚动条,即如果视口的范围高度小于其视图高度或
displayPolicy
为ALWAYS,则它将像行标题一样处理其尺寸并显示。 - 如果需要水平滚动条,则将其视为列标题(请参阅上面关于垂直滚动条的段落)。
- 如果滚动窗格具有非
null
的viewportBorder
,则为其分配空间。 - 视口获取在考虑前述约束后可用的空间。
- 如果提供了角落组件,则将其与滚动条和标题的末端对齐。如果存在垂直滚动条,则右下角出现;如果存在水平滚动条,则下方角出现;行标题获取左上角,列标题获取右上角。
- 指定者:
-
layoutContainer
在接口LayoutManager
中指定 - 参数:
-
parent
- 要布局的Container
-
getViewportBorderBounds
Deprecated.As of JDK version Swing1.1 replaced byJScrollPane.getViewportBorderBounds()
.返回指定滚动窗格视口周围边框的边界。- 参数:
-
scrollpane
-JScrollPane
的一个实例 - 返回:
- 视口边框的大小和位置
-
JScrollPane.getViewportBorderBounds()
替代。