java.lang.Object java.awt.Component java.awt.Scrollbar
public class Scrollbar
Scrollbar
类描述了一个滚动条,这是大家都很熟悉的用户界面对象。滚动条提供了一个允许用户在一定范围的值中进行选择的便捷方式。可以将以下三个垂直滚动条用作滑动块控件,以选择红、绿和蓝三种颜色的分量:
在此例中,每个滚动条都是使用类似于下面的代码创建的:
redSlider=new Scrollbar(Scrollbar.VERTICAL, 0, 1, 0, 255); add(redSlider);
此外,滚动条还可以表示某一范围的值。例如,如果滚动条用于滚动文本,则可以使用“滑动块(bubble)”(也称为 "thumb" 或“滚动框”)的宽度来表示可视的文本数。下面是表示某一范围的滚动条:
在这个例子中,滑动块表示的值范围是可见量。此例中的水平滚动条可以用以下代码来创建:
ranger = new Scrollbar(Scrollbar.HORIZONTAL, 0, 60, 0, 300); add(ranger);
注意,滚动条的实际最大值是 maximum
减去 visible amount
。在前面的例子中,因为 maximum
是 300,visible amount
是 60,所以实际最大值是 240。滚动条轨道的范围是 0 - 300。滑动块的左侧指示了滚动条的值。
通常,用户通过使用鼠标来改变滚动条的值。例如,用户可以上下拖动滚动条的滑动块,或单击滚动条的单位增量或块增量区域。键盘动作也能映射到滚动条。按照惯例,Page Up 和 Page Down 键等同于单击滚动条的块增量和块减量区域。
当用户改变滚动条的值时,滚动条接收一个 AdjustmentEvent
实例。滚动条处理此事件,将它传递给所有已注册的侦听器。
任何希望滚动条值发生变化时被通知的对象都应该实现包 java.awt.event
中定义的 AdjustmentListener
接口。调用 addAdjustmentListener
和 removeAdjustmentListener
方法能动态地添加或删除侦听器。
AdjustmentEvent
类定义了五种调整事件,如下所示:
AdjustmentEvent.TRACK
。 AdjustmentEvent.UNIT_INCREMENT
。 AdjustmentEvent.UNIT_DECREMENT
。 AdjustmentEvent.BLOCK_INCREMENT
。按照惯例,如果用户使用定义了 Page Up 键的键盘,则 Page Up 键是等效的。 AdjustmentEvent.BLOCK_DECREMENT
。按照惯例,如果用户使用定义了 Page Down 键的键盘,则 Page Down 键是等效的。 为了获得向后兼容,JDK 1.0 事件系统也受到支持,但是该平台的新版本不鼓励使用它。JDK 1.1 中介绍的五种调整事件与以前该平台版本中的有关滚动条的五种事件对应。下面列表给出了调整事件类型和它对应的 JDK 1.0 中的替换事件类型。
AdjustmentEvent.TRACK
替换 Event.SCROLL_ABSOLUTE
AdjustmentEvent.UNIT_INCREMENT
替换 Event.SCROLL_LINE_UP
AdjustmentEvent.UNIT_DECREMENT
替换 Event.SCROLL_LINE_DOWN
AdjustmentEvent.BLOCK_INCREMENT
替换 Event.SCROLL_PAGE_UP
AdjustmentEvent.BLOCK_DECREMENT
替换 Event.SCROLL_PAGE_DOWN
注:我们建议只对值的选择使用 Scrollbar
。如果想在容器中实现一个可滚动的组件,那么建议您使用 ScrollPane
。如果使用 Scrollbar
来实现这一目的,那么可能会遇到绘制、键处理、大小调整和定位问题。
AdjustmentEvent
,
AdjustmentListener
,
序列化表格
嵌套类摘要 | |
---|---|
protected class |
Scrollbar.AccessibleAWTScrollBar 此类实现 Scrollbar 类的可访问性支持。 |
从类 java.awt.Component 继承的嵌套类/接口 |
---|
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy |
字段摘要 | |
---|---|
static int |
HORIZONTAL 指示一个水平滚动条的常量。 |
static int |
VERTICAL 指示一个垂直滚动条的常量。 |
从类 java.awt.Component 继承的字段 |
---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
从接口 java.awt.Adjustable 继承的字段 |
---|
NO_ORIENTATION |
从接口 java.awt.image.ImageObserver 继承的字段 |
---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
构造方法摘要 | |
---|---|
Scrollbar() 构造一个新的垂直滚动条。 |
|
Scrollbar(int orientation) 构造一个具有指定方向的新滚动条。 |
|
Scrollbar(int orientation, int value, int visible, int minimum, int maximum) 构造一个新的滚动条,它具有指定的方向、初始值、可见量、最小值和最大值。 |
方法摘要 | ||
---|---|---|
void |
addAdjustmentListener(AdjustmentListener l) 添加指定的调整侦听器,以接收发自此滚动条的 AdjustmentEvent 实例。 |
|
void |
addNotify() 创建 Scrollbar 的同位体。 |
|
AccessibleContext |
getAccessibleContext() 获取与此 Scrollbar 相关的 AccessibleContext 。 |
|
AdjustmentListener[] |
getAdjustmentListeners() 返回在此滚动条上所有已注册调整侦听器组成的数组。 |
|
int |
getBlockIncrement() 获取此滚动条的块增量。 |
|
int |
getLineIncrement() 已过时。 从 JDK version 1.1 开始,由 getUnitIncrement() 取代。 |
|
|
getListeners(Class<T> listenerType) 返回目前已在此 Scrollbar 上注册为 FooListener 的所有对象组成的数组。 |
|
int |
getMaximum() 获取此滚动条的最大值。 |
|
int |
getMinimum() 获取此滚动条的最小值。 |
|
int |
getOrientation() 返回此滚动条的方向。 |
|
int |
getPageIncrement() 已过时。 从 JDK version 1.1 开始,由 getBlockIncrement() 取代。 |
|
int |
getUnitIncrement() 获取此滚动条的单位增量。 |
|
int |
getValue() 获取此滚动条的当前值。 |
|
boolean |
getValueIsAdjusting() 如果该值作为用户执行动作的结果正处于更改过程中,则返回 true。 |
|
int |
getVisible() 已过时。 从 JDK version 1.1 开始,由 getVisibleAmount() 取代。 |
|
int |
getVisibleAmount() 获取此滚动条的可见量。 |
|
protected String |
paramString() 返回表示此 Scrollbar 当前状态的字符串表示形式。 |
|
protected void |
processAdjustmentEvent(AdjustmentEvent e) 处理此滚动条上发生的调整事件,方法是将其指派到任意已注册的 AdjustmentListener 对象。 |
|
protected void |
processEvent(AWTEvent e) 处理在滚动条上发生的事件。 |
|
void |
removeAdjustmentListener(AdjustmentListener l) 移除指定的调整侦听器,不再接收发自此滚动条的 AdjustmentEvent 实例。 |
|
void |
setBlockIncrement(int v) 设置此滚动条的块增量。 |
|
void |
setLineIncrement(int v) 已过时。 从 JDK version 1.1 开始,由 setUnitIncrement(int) 取代。 |
|
void |
setMaximum(int newMaximum) 设置此滚动条的最大值。 |
|
void |
setMinimum(int newMinimum) 设置此滚动条的最小值。 |
|
void |
setOrientation(int orientation) 设置此滚动条的方向。 |
|
void |
setPageIncrement(int v) 已过时。 从 JDK version 1.1 开始,由 setBlockIncrement() 取代。 |
|
void |
setUnitIncrement(int v) 设置此滚动条的单位增量。 |
|
void |
setValue(int newValue) 将此滚动条的值设置为指定值。 |
|
void |
setValueIsAdjusting(boolean b) 设置 valueIsAdjusting 属性。 |
|
void |
setValues(int value, int visible, int minimum, int maximum) 设置此滚动条的四个属性值: value 、visibleAmount 、minimum 和 maximum 。 |
|
void |
setVisibleAmount(int newAmount) 设置此滚动条的可见量。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
字段详细信息 |
---|
public static final int HORIZONTAL
public static final int VERTICAL
构造方法详细信息 |
---|
public Scrollbar() throws HeadlessException
属性 | 描述 | 默认值 |
---|---|---|
方向 | 指示滚动条是垂直的 或水平的 |
Scrollbar.VERTICAL |
值 | 控制滚动条的滑动块 位置的值 |
0 |
可见量 | 滚动条范围的可见量, 通常由滚动条的滑动块 的大小表示 |
10 |
最小值 | 滚动条的最小值 | 0 |
最大值 | 滚动条的最大值 | 100 |
单元增量 | 在按下 Line Up 或 Line Down 键时, 或者单击滚动条 的末端箭头时, 值更改的量 |
1 |
块增量 | 在按下 Page Up 或 Page Down 键时, 或在滑动块的两侧 单击滚动条轨道时, 值更改的量 |
10 |
HeadlessException
- 如果 GraphicsEnvironment.isHeadless() 返回 true。
GraphicsEnvironment.isHeadless()
public Scrollbar(int orientation) throws HeadlessException
orientation
参数必须是 Scrollbar.HORIZONTAL
或 Scrollbar.VERTICAL
这两个值之一,它们分别指示滚动条是水平滚动条,还是垂直滚动条。
orientation
- 指示滚动条的方向
IllegalArgumentException
- 在提供不合法的
orientation
参数值时
HeadlessException
- 如果 GraphicsEnvironment.isHeadless() 返回 true。
GraphicsEnvironment.isHeadless()
public Scrollbar(int orientation, int value, int visible, int minimum, int maximum) throws HeadlessException
orientation
参数必须是 Scrollbar.HORIZONTAL
或 Scrollbar.VERTICAL
这两个值之一,分别指示滚动条是水平滚动条,还是垂直滚动条。
为此构造方法提供的参数受到 setValues(int, int, int, int)
中描述的约束 (Constraints) 的限制。
orientation
- 指示滚动条的方向。
value
- 滚动条的初始值
visible
- 滚动条的可见量,通常由滑动块的大小表示
minimum
- 滚动条的最小值
maximum
- 滚动条的最大值
IllegalArgumentException
- 当提供不合法的
orientation
参数值时
HeadlessException
- 如果 GraphicsEnvironment.isHeadless() 返回 true。
setValues(int, int, int, int)
,
GraphicsEnvironment.isHeadless()
方法详细信息 |
---|
public void addNotify()
Scrollbar
的同位体。此同位体允许在不更改
Scrollbar
功能的情况下修改其外观。
public int getOrientation()
Adjustable
中的
getOrientation
Scrollbar.HORIZONTAL
或
Scrollbar.VERTICAL
setOrientation(int)
public void setOrientation(int orientation)
orientation
- 此滚动条的方向,可以是
Scrollbar.HORIZONTAL
或
Scrollbar.VERTICAL
IllegalArgumentException
- 如果为
orientation
提供的值是非法值
getOrientation()
public int getValue()
Adjustable
中的
getValue
getMinimum()
,
getMaximum()
public void setValue(int newValue)
如果指定的值小于当前 minimum
或大于当前 maximum - visibleAmount
,则对 minimum
或 maximum - visibleAmount
进行适当的替换。
通常,程序应该只通过调用 setValues
更改滚动条的值。setValues
方法同时且同步地设置滚动条的最小值、最大值、可见量和值属性,因此它们是一致的。
调用此方法不会触发 AdjustmentEvent
。
Adjustable
中的
setValue
newValue
- 滚动条的新值
setValues(int, int, int, int)
,
getValue()
,
getMinimum()
,
getMaximum()
public int getMinimum()
Adjustable
中的
getMinimum
getValue()
,
getMaximum()
public void setMinimum(int newMinimum)
在调用 setMinimum
时,最小值会发生更改,并且其他值(包括最大值、可视量和滚动条的当前值)都会随新的最小值发生一致的更改。
通常,程序应该只通过调用 setValues
更改滚动条的最小值。setValues
方法同时且同步地设置滚动条的最小值、最大值、可见量和值属性,因此它们是相互一致的。
注意,将最小值设置为 Integer.MAX_VALUE
将导致新的最小值被设置为 Integer.MAX_VALUE - 1
。
Adjustable
中的
setMinimum
newMinimum
- 此滚动条的新的最小值
setValues(int, int, int, int)
,
setMaximum(int)
public int getMaximum()