java.awt

接口
异常
错误
java.lang.Object
  继承者 java.awt.Component
      继承者 java.awt.Scrollbar
所有已实现的接口:
Adjustable, ImageObserver, MenuContainer, Serializable, Accessible

public class Scrollbar
     
extends Component
implements Adjustable, Accessible

Scrollbar 类描述了一个滚动条,这是大家都很熟悉的用户界面对象。滚动条提供了一个允许用户在一定范围的值中进行选择的便捷方式。可以将以下三个垂直滚动条用作滑动块控件,以选择红、绿和蓝三种颜色的分量:

图像并排显示了三个垂直滑动块。

在此例中,每个滚动条都是使用类似于下面的代码创建的:


 redSlider=new Scrollbar(Scrollbar.VERTICAL, 0, 1, 0, 255);
 add(redSlider);
 

此外,滚动条还可以表示某一范围的值。例如,如果滚动条用于滚动文本,则可以使用“滑动块(bubble)”(也称为 "thumb" 或“滚动框”)的宽度来表示可视的文本数。下面是表示某一范围的滚动条:

图像显示了水平滑动块,其初始范围为 0,终止范围为 300。滑动块被标记为 60。

在这个例子中,滑动块表示的值范围是可见量。此例中的水平滚动条可以用以下代码来创建:


 ranger = new Scrollbar(Scrollbar.HORIZONTAL, 0, 60, 0, 300);
 add(ranger);
 

注意,滚动条的实际最大值是 maximum 减去 visible amount。在前面的例子中,因为 maximum 是 300,visible amount 是 60,所以实际最大值是 240。滚动条轨道的范围是 0 - 300。滑动块的左侧指示了滚动条的值。

通常,用户通过使用鼠标来改变滚动条的值。例如,用户可以上下拖动滚动条的滑动块,或单击滚动条的单位增量或块增量区域。键盘动作也能映射到滚动条。按照惯例,Page UpPage Down 键等同于单击滚动条的块增量和块减量区域。

当用户改变滚动条的值时,滚动条接收一个 AdjustmentEvent 实例。滚动条处理此事件,将它传递给所有已注册的侦听器。

任何希望滚动条值发生变化时被通知的对象都应该实现包 java.awt.event 中定义的 AdjustmentListener 接口。调用 addAdjustmentListenerremoveAdjustmentListener 方法能动态地添加或删除侦听器。

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 来实现这一目的,那么可能会遇到绘制、键处理、大小调整和定位问题。

从以下版本开始:
JDK1.0
另请参见:
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() 取代。
<T extends EventListener>
T[]
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)
          设置此滚动条的四个属性值:valuevisibleAmountminimummaximum
 void setVisibleAmount(int newAmount)
          设置此滚动条的可见量。
 
从类 java.awt.Component 继承的方法
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAlignmentX, getAlignmentY, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeys, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMaximumSize, getMinimumSize, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusCycleRoot, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, minimumSize, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paint, paintAll, postEvent, preferredSize, prepareImage, prepareImage, print, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeys, setFocusTraversalKeysEnabled, setFont, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle, update, validate
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

字段详细信息

HORIZONTAL

public static final int HORIZONTAL
指示一个水平滚动条的常量。

另请参见:
常量字段值

VERTICAL

public static final int VERTICAL
指示一个垂直滚动条的常量。

另请参见:
常量字段值
构造方法详细信息

Scrollbar

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

Scrollbar

public Scrollbar(int orientation)
          throws HeadlessException
构造一个具有指定方向的新滚动条。

orientation 参数必须是 Scrollbar.HORIZONTALScrollbar.VERTICAL 这两个值之一,它们分别指示滚动条是水平滚动条,还是垂直滚动条。

参数:
orientation - 指示滚动条的方向
抛出:
IllegalArgumentException - 在提供不合法的 orientation 参数值时
HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true。
另请参见:
GraphicsEnvironment.isHeadless()

Scrollbar

public Scrollbar(int orientation,
                 int value,
                 int visible,
                 int minimum,
                 int maximum)
          throws HeadlessException
构造一个新的滚动条,它具有指定的方向、初始值、可见量、最小值和最大值。

orientation 参数必须是 Scrollbar.HORIZONTALScrollbar.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()
方法详细信息

addNotify

public void addNotify()
创建 Scrollbar 的同位体。此同位体允许在不更改 Scrollbar 功能的情况下修改其外观。

覆盖:
Component 中的 addNotify
另请参见:
Component.isDisplayable(), Component.removeNotify()

getOrientation

public int getOrientation()
返回此滚动条的方向。

指定者:
接口 Adjustable 中的 getOrientation
返回:
此滚动条的方向,可以是 Scrollbar.HORIZONTALScrollbar.VERTICAL
另请参见:
setOrientation(int)

setOrientation

public void setOrientation(int orientation)
设置此滚动条的方向。

参数:
orientation - 此滚动条的方向,可以是 Scrollbar.HORIZONTALScrollbar.VERTICAL
抛出:
IllegalArgumentException - 如果为 orientation 提供的值是非法值
从以下版本开始:
JDK1.1
另请参见:
getOrientation()

getValue

public int getValue()
获取此滚动条的当前值。

指定者:
接口 Adjustable 中的 getValue
返回:
此滚动条的当前值
另请参见:
getMinimum(), getMaximum()

setValue

public void setValue(int newValue)
将此滚动条的值设置为指定值。

如果指定的值小于当前 minimum 或大于当前 maximum - visibleAmount,则对 minimummaximum - visibleAmount 进行适当的替换。

通常,程序应该只通过调用 setValues 更改滚动条的值。setValues 方法同时且同步地设置滚动条的最小值、最大值、可见量和值属性,因此它们是一致的。

调用此方法不会触发 AdjustmentEvent

指定者:
接口 Adjustable 中的 setValue
参数:
newValue - 滚动条的新值
另请参见:
setValues(int, int, int, int), getValue(), getMinimum(), getMaximum()

getMinimum

public int getMinimum()
获取此滚动条的最小值。

指定者:
接口 Adjustable 中的 getMinimum
返回:
此滚动条的最小值
另请参见:
getValue(), getMaximum()

setMinimum

public void setMinimum(int newMinimum)
设置此滚动条的最小值。

在调用 setMinimum 时,最小值会发生更改,并且其他值(包括最大值、可视量和滚动条的当前值)都会随新的最小值发生一致的更改。

通常,程序应该只通过调用 setValues 更改滚动条的最小值。setValues 方法同时且同步地设置滚动条的最小值、最大值、可见量和值属性,因此它们是相互一致的。

注意,将最小值设置为 Integer.MAX_VALUE 将导致新的最小值被设置为 Integer.MAX_VALUE - 1

指定者:
接口 Adjustable 中的 setMinimum
参数:
newMinimum - 此滚动条的新的最小值
从以下版本开始:
JDK1.1
另请参见:
setValues(int, int, int, int), setMaximum(int)

getMaximum

public int getMaximum()
获取此滚动条的最大值。

指定者: