类 java.awt.ScrollPane
java.lang.Object
|
+----java.awt.Component
|
+----java.awt.Container
|
+----java.awt.ScrollPane
- public class ScrollPane
- extends Container
一个容器类,为单子组件实现自动的水平和/或垂直滚动条。滚动条的显示方式可设置为:
- 需要时显示:当需要时由滚动面板创建并显示
- 总显示:由滚动面板创建并总被显示
- 不显示:滚动面板既不创建也不显示滚动条
水平和垂直滚动条状态由两个实现 Adjustable 接口的对象表示。
API 提供一些方法,用于访问那些对象,诸如 Adjustable 对象的属性(例如单位增量,值等)。
相对于滚动面板的几何特性,可对某些可调整的属性(最小值,最大值,块增量和可视部分)进行交互式设置,面板的子组件及以上这些属性不应由程序代码使用滚动面板设置。
如果滚动条的显示方式定义为 "never", 那么仍可使用
setScrollPosition() 方法编程实现滚动此滚动面板,正确的移动和剪切它的子组件。如果程序不需创建和管理它自己的可调整控件,那么使用该策略。
滚动条的放置由用户在程序外设定的特定于平台的属性来控制。
该容器的初始尺寸设置为 100x100, 能使用 setSize() 方法重新设置。
滚动条使用的任一空间和滚动面板创建的任一边界可使用嵌入属性。使用 getInsets() 方法获取嵌入的当前值。如果 scrollbarsAlwaysVisible 的值为 false, 那么不管滚动条当前是否可见,嵌入值将动态变化。
变量索引
- SCROLLBARS_ALWAYS
- 不管滚动面板和它的子组件的尺寸大小,指定水平/垂直的滚动条总应显示。
- SCROLLBARS_AS_NEEDED
- 指示仅当滚动面板中的子组件在水平/垂直方向上超过此面板的尺寸时,才显示水平/垂直滚动条。
- SCROLLBARS_NEVER
- 不管滚动面板和它的子组件的尺寸大小,指定永不显示水平/垂直的滚动条。
构造子索引
- ScrollPane()
- 创建一个新的滚动面板容器,显示方式为 "needed"。
- ScrollPane(int)
- 创建一个新的滚动面板容器。
方法索引
- addImpl(Component, Object, int)
-
将特定的组件添加到当前滚动面板容器。
- addNotify()
- 创建该滚动面板的同级件。
- doLayout()
- 通过将当前容器的子组件设置为最优尺寸来调整它的布局。
- getHAdjustable()
- 返回可调整的对象,表示水平滚动条的状态。
- getHScrollbarHeight()
- 返回一个水平滚动条占据的高度,不管它当前是否处于显示状态。
- getScrollbarDisplayPolicy()
- 返回滚动条的显示方式。
- getScrollPosition()
- 返回滚动面板视窗中 0,0 位置显示的子组件内的当前 x,y 位置。
- getVAdjustable()
- 返回可调整的对象,表示垂直滚动条的状态。
- getViewportSize()
- 返回滚动面板视窗的当前尺寸。
- getVScrollbarWidth()
- 返回一个水平滚动条占据的宽度,不管它当前是否处于显示状态。
- layout()
-
不推荐使用该方法。
- paramString()
- 返回表示当前容器状态的参数串。
- printComponents(Graphics)
-
打印当前滚动窗口中的组件。
- setLayout(LayoutManager)
-
设置当前容器的布局管理器。
- setScrollPosition(int, int)
- 滚动到子组件内的指定位置。
- setScrollPosition(Point)
- 滚动到子组件内的指定位置。
变量
SCROLLBARS_AS_NEEDED
public static final int SCROLLBARS_AS_NEEDED
- 指示仅当滚动面板中的子组件在水平/垂直方向上超过此面板的尺寸时,才显示水平/垂直滚动条。
SCROLLBARS_ALWAYS
public static final int SCROLLBARS_ALWAYS
- 不管滚动面板和它的子组件的尺寸大小,指定水平/垂直的滚动条总应显示。
SCROLLBARS_NEVER
public static final int SCROLLBARS_NEVER
- 不管滚动面板和它的子组件的尺寸大小,指定永不显示水平/垂直的滚动条。
构造子
ScrollPane
public ScrollPane()
- 创建一个新的滚动面板容器,显示方式为 "needed"。
ScrollPane
public ScrollPane(int scrollbarDisplayPolicy)
- 创建一个新的滚动面板容器。
- 参数:
- scrollbarDisplayPolicy - 滚动条的显示方式
方法
addImpl
protected final void addImpl(Component comp,
Object constraints,
int index)
- 将特定的组件添加到当前滚动面板容器。
如果滚动面板中已存在一个子组件,那么删除此组件并添加指定组件。
- 参数:
- comp - 要添加的组件
- constraints - 不使用
- index - 子组件的位置(必 <= 0)
- 覆盖:
-
addImpl 类
Container 中的
getScrollbarDisplayPolicy
public int getScrollbarDisplayPolicy()
- 返回滚动条的显示方式。
- 返回值:
- 滚动条的显示方式
getViewportSize
public Dimension getViewportSize()
- 返回滚动面板视窗的当前尺寸。
- 返回值:
- 视窗的象素尺寸
getHScrollbarHeight
public int getHScrollbarHeight()
- 返回一个水平滚动条占据的高度,不管它当前是否处于显示状态。
- 返回值:
- 水平滚动条的象素高度
getVScrollbarWidth
public int getVScrollbarWidth()
- 返回一个水平滚动条占据的宽度,不管它当前是否处于显示状态。
- 返回值:
- 垂直滚动条的象素宽度
getVAdjustable
public Adjustable getVAdjustable()
- 返回可调整的对象,表示垂直滚动条的状态。 如果滚动条的显示方式为 "never", 此方法返回 null。
getHAdjustable
public Adjustable getHAdjustable()
- 返回可调整的对象,表示水平滚动条的状态。 如果滚动条的显示方式为 "never", 此方法返回 null。
setScrollPosition
public void setScrollPosition(int x,
int y)
- 滚动到子组件内的指定位置。
如果滚动面板包含一个子组件,调用此方法才合法。对于超出子组件合法滚动边界的位置,将滚动到与之最接近的合法位置。合法边界由如下矩形定义:
x = 0, y = 0, 宽 = (子组件宽度 - 视窗宽度),
高 = (子组件高度 - 视窗高度)。这是一个同表示滚动条状态对象接口的简洁方法。
- 参数:
- x - 滚动到的 x 位置
- y - 滚动到的 y 位置
- 抛出:
IllegalArgumentException
- 如果指定坐标不在此组件的合法滚动边界内。
setScrollPosition
public void setScrollPosition(Point p)
- 滚动到子组件内的指定位置。
如果滚动面板包含一个子组件,且滚动位置在此组件的合法滚动边界内,则调用此方法合法。 合法边界由如下矩形定义:
x = 0, y = 0, 宽 = (子组件宽度 - 视窗宽度),
高 = (子组件高度 - 视窗高度)。
这是一个同表示滚动条状态对象接口的简洁方法。
- 参数:
- p - 滚动到的点位置
- 抛出:
IllegalArgumentException
- 如果指定坐标不在此组件的合法滚动边界内。
getScrollPosition
public Point getScrollPosition()
- 返回滚动面板视窗中 0,0 位置显示的子组件内的当前 x,y 位置。
这是一个同表示滚动条状态可调整对象的接口的简洁方法。
- 返回值:
- 当前滚动位置的坐标位置
setLayout
public final void setLayout(LayoutManager mgr)
- 设置当前容器的布局管理器。 覆盖此方法,阻止设置布局的 mgr 参数。
- 参数:
- mgr - 指定的布局管理器
- 覆盖:
- 类 Container
中的
setLayout
doLayout
public void doLayout()
- 通过将当前容器的子组件设置为最优尺寸来调整它的布局。
如果此尺寸使当前滚动位置非法,那么将滚动位置设置为它的最邻近的合法位置。
- 覆盖:
- 类 Container 中的
doLayout
- 参见:
- validate
layout
public void layout()
- 注释:不推荐使用 layout() 方法。
同 JDK 1.1 版,用
doLayout() 方法替换。
- 覆盖:
- 类 Container 中的
layout
printComponents
public void printComponents(Graphics g)
- 打印当前滚动窗口中的组件。
- 参数:
- g - 指定的图形窗口
- 覆盖:
- 类 Container
中的
printComponents
- 参见:
- print, printAll
addNotify
public void addNotify()
- 创建该滚动面板的同级件。
- 覆盖:
- 类
Container 中的
addNotify
paramString
public String paramString()
- 返回表示当前容器状态的参数串。
- 覆盖:
- 类
Container
中的
paramString