模块  java.desktop
软件包  java.awt

Class Scrollbar

  • 实现的所有接口
    AdjustableImageObserverMenuContainerSerializableAccessible

    public class Scrollbar
    extends Component
    implements Adjustable, Accessible
    Scrollbar类包含一个滚动条,一个熟悉的用户界面对象。 滚动条提供了一种方便的方法,允许用户从一系列值中进行选择。 以下三个垂直滚动条可用作滑块控件,以选择颜色的红色,绿色和蓝色组件:

    图像显示了3个垂直滑块,并排显示。

    可以使用类似于以下内容的代码创建此示例中的每个滚动条:


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

    或者,滚动条可以表示一系列值。 例如,如果滚动条用于滚动文本,则“气泡”(也称为“拇指”或“滚动框”)的宽度可用于表示可见的文本量。 以下是表示范围的滚动条示例:

    图像显示水平滑块,起始范围为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的实例。 滚动条处理此事件,将其传递给任何已注册的侦听器。

    希望获得滚动条值更改通知的任何对象应实现AdjustmentListener ,即程序包java.awt.event定义的接口。 可以通过调用方法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 ,则可能会遇到绘画,键处理,大小调整和定位等问题。

    从以下版本开始:
    1.0
    另请参见:
    AdjustmentEventAdjustmentListenerSerialized Form
    • 字段详细信息

      • HORIZONTAL

        public static final int HORIZONTAL
        一个表示水平滚动条的常量。
        另请参见:
        常数字段值
      • VERTICAL

        public static final int VERTICAL
        一个表示垂直滚动条的常量。
        另请参见:
        常数字段值
    • 构造方法详细信息

      • Scrollbar

        public Scrollbar()
                  throws HeadlessException
        构造一个新的垂直滚动条。 滚动条的默认属性在下表中列出: Scrollbar default properties Property Description Default Value orientation indicates whether the scroll bar is vertical or horizontal Scrollbar.VERTICAL value value which controls the location of the scroll bar's bubble 0 visible amount visible amount of the scroll bar's range, typically represented by the size of the scroll bar's bubble 10 minimum minimum value of the scroll bar 0 maximum maximum value of the scroll bar 100 unit increment amount the value changes when the Line Up or Line Down key is pressed, or when the end arrows of the scrollbar are clicked 1 block increment amount the value changes when the Page Up or Page Down key is pressed, or when the scrollbar track is clicked
        on either side of the bubble 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)描述的约束。

        参数
        orientation - 表示滚动条的方向。
        value - 滚动条的初始值
        visible - 滚动条的可见量,通常由气泡的大小表示
        minimum - 滚动条的最小值
        maximum - 滚动条的最大值
        异常
        IllegalArgumentException - 当提供 orientation参数的非法值时
        HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true。
        另请参见:
        setValues(int, int, int, int)GraphicsEnvironment.isHeadless()
    • 方法详细信息

      • getOrientation

        public int getOrientation()
        返回此滚动条的方向。
        Specified by:
        getOrientation在界面 Adjustable
        结果
        此滚动条的方向, Scrollbar.HORIZONTALScrollbar.VERTICAL
        另请参见:
        setOrientation(int)
      • setOrientation

        public void setOrientation​(int orientation)
        设置此滚动条的方向。
        参数
        orientation - 此滚动条的方向, Scrollbar.HORIZONTALScrollbar.VERTICAL
        异常
        IllegalArgumentException - 如果为 orientation提供的值不是合法值
        从以下版本开始:
        1.1
        另请参见:
        getOrientation()
      • setValue

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

        如果提供的值小于当前的minimum或大于当前的maximum - visibleAmount ,则根据minimum替换minimummaximum - visibleAmount

        通常,程序只应通过调用setValues来更改滚动条的值。 setValues方法同时并同步设置滚动条的最小值,最大值,可见量和值属性,以使它们相互一致。

        调用此方法不会触发AdjustmentEvent

        Specified by:
        setValue in interface Adjustable
        参数
        newValue - 滚动条的新值
        另请参见:
        setValues(int, int, int, int)getValue()getMinimum()getMaximum()
      • setMinimum

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

        调用setMinimum ,将更改最小值,并将其他值(包括最大值,可见量和当前滚动条值)更改为与新的最小值一致。

        通常,程序只能通过调用setValues来更改滚动条的最小值。 setValues方法同时并同步设置滚动条的最小值,最大值,可见量和值属性,以使它们相互一致。

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

        Specified by:
        setMinimum在接口 Adjustable
        参数
        newMinimum - 此滚动条的新最小值
        从以下版本开始:
        1.1
        另请参见:
        setValues(int, int, int, int)setMaximum(int)
      • setMaximum

        public void setMaximum​(int newMaximum)
        设置此滚动条的最大值。

        调用setMaximum ,将更改最大值,并将其他值(包括最小值,可见量和当前滚动条值)更改为与新的最大值一致。

        通常,程序只能通过调用setValues来更改滚动条的最大值。 setValues方法同时并同步设置滚动条的最小值,最大值,可见量和值属性,以使它们相互一致。

        请注意,将最大值设置为Integer.MIN_VALUE将导致新的最大值设置为Integer.MIN_VALUE + 1

        Specified by:
        setMaximum in interface Adjustable
        参数
        newMaximum - 此滚动条的新最大值
        从以下版本开始:
        1.1
        另请参见:
        setValues(int, int, int, int)setMinimum(int)
      • getVisibleAmount

        public int getVisibleAmount()
        获取此滚动条的可见量。

        使用滚动条选择值范围时,可见量用于表示当前可见的值范围。 滚动条的气泡(也称为拇指或滚动框)的大小通常会直观地显示可见量与滚动条范围的关系。 请注意,根据平台,可见量属性的值可能无法通过气泡的大小在视觉上指示。

        滚动条的气泡不可移动时可能不会显示(例如,当它占据滚动条轨道的整个长度时,或者当滚动条被禁用时)。 是否显示气泡不会影响getVisibleAmount返回的值。

        Specified by:
        getVisibleAmount in interface Adjustable
        结果
        此滚动条的可见量
        从以下版本开始:
        1.1
        另请参见:
        setVisibleAmount(int)
      • getVisible

        @Deprecated
        public int getVisible()
        Deprecated.
        As of JDK version 1.1, replaced by getVisibleAmount().
        返回此滚动条的可见量。
        结果
        此滚动条的可见量
      • setVisibleAmount

        public void setVisibleAmount​(int newAmount)
        设置此滚动条的可见数量。

        使用滚动条选择值范围时,可见量用于表示当前可见的值范围。 滚动条的气泡(也称为拇指或滚动框)的大小通常会直观地显示可见量与滚动条范围的关系。 请注意,根据平台,可见量属性的值可能无法通过气泡的大小在视觉上指示。

        滚动条的气泡不可移动时可能不会显示(例如,当它占据滚动条轨道的整个长度时,或者当滚动条被禁用时)。 是否显示气泡不会影响getVisibleAmount返回的值。

        如果提供的可见量小于one或大于当前的maximum - minimum ,则根据one替换onemaximum - minimum

        通常,程序只应通过调用setValues来更改滚动条的值。 setValues方法同时并同步设置滚动条的最小值,最大值,可见量和值属性,以使它们相互一致。

        Specified by:
        setVisibleAmount in interface Adjustable
        参数
        newAmount - 新的可见金额
        从以下版本开始:
        1.1
        另请参见:
        getVisibleAmount()setValues(int, int, int, int)
      • setUnitIncrement

        public void setUnitIncrement​(int v)
        设置此滚动条的单位增量。

        单位增量是当用户激活滚动条的单位增量区域时添加或减去的值,通常通过滚动条作为调整事件接收的鼠标或键盘手势。 单位增量必须大于零。 尝试将单位增量设置为小于1的值将导致设置值1。

        在某些操作系统中,底层控件可以忽略此属性。

        Specified by:
        setUnitIncrement接口 Adjustable
        参数
        v - 增加或减少滚动条值的数量
        从以下版本开始:
        1.1
        另请参见:
        getUnitIncrement()
      • setLineIncrement

        @Deprecated
        public void setLineIncrement​(int v)
        Deprecated.
        As of JDK version 1.1, replaced by setUnitIncrement(int).
        设置此滚动条的单位增量。
        参数
        v - 增量值
      • getUnitIncrement

        public int getUnitIncrement()
        获取此滚动条的单位增量。

        单位增量是当用户激活滚动条的单位增量区域时添加或减去的值,通常通过滚动条作为调整事件接收的鼠标或键盘手势。 单位增量必须大于零。

        在某些操作系统中,底层控件可以忽略此属性。

        Specified by:
        getUnitIncrement在接口 Adjustable
        结果
        此滚动条的单位增量
        从以下版本开始:
        1.1
        另请参见:
        setUnitIncrement(int)
      • getLineIncrement

        @Deprecated
        public int getLineIncrement()
        Deprecated.
        As of JDK version 1.1, replaced by getUnitIncrement().
        返回此滚动条的单位增量。
        结果
        此滚动条的单位增量
      • setBlockIncrement

        public void setBlockIncrement​(int v)
        设置此滚动条的块增量。

        块增量是当用户激活滚动条的块增量区域时添加或减去的值,通常通过滚动条作为调整事件接收的鼠标或键盘手势。 块增量必须大于零。 尝试将块增量设置为小于1的值将导致设置值1。

        Specified by:
        setBlockIncrement在接口 Adjustable
        参数
        v - 增加或减少滚动条值的数量
        从以下版本开始:
        1.1
        另请参见:
        getBlockIncrement()
      • setPageIncrement

        @Deprecated
        public void setPageIncrement​(int v)
        Deprecated.
        As of JDK version 1.1, replaced by setBlockIncrement().
        设置此滚动条的块增量。
        参数
        v - 块增量
      • getBlockIncrement

        public int getBlockIncrement()
        获取此滚动条的块增量。

        块增量是当用户激活滚动条的块增量区域时添加或减去的值,通常通过滚动条作为调整事件接收的鼠标或键盘手势。 块增量必须大于零。

        Specified by:
        getBlockIncrement在接口 Adjustable
        结果
        此滚动条的块增量
        从以下版本开始:
        1.1
        另请参见:
        setBlockIncrement(int)
      • getPageIncrement

        @Deprecated
        public int getPageIncrement()
        Deprecated.
        As of JDK version 1.1, replaced by getBlockIncrement().
        返回此滚动条的块增量。
        结果
        此滚动条的块增量
      • setValues

        public void setValues​(int value,
                              int visible,
                              int minimum,
                              int maximum)
        设置的四个属性此滚动条的值: valuevisibleAmountminimummaximum 如果为这些属性提供的值不一致或不正确,则会更改它们以确保一致性。

        此方法同时并同步设置四个滚动条属性的值,确保这些属性的值相互一致。 它强制执行以下限制: maximum必须大于minimummaximum - minimum必须不大于Integer.MAX_VALUEvisibleAmount必须大于零。 visibleAmount必须不大于maximum - minimumvalue必须不小于minimum ,并value必须不大于maximum - visibleAmount

        调用此方法不会触发AdjustmentEvent

        参数
        value - 是当前窗口中的位置
        visible - 滚动条的可见数量
        minimum - 是滚动条的最小值
        maximum - 是滚动条的最大值
        另请参见:
        setMinimum(int)setMaximum(int)setVisibleAmount(int)setValue(int)
      • getValueIsAdjusting

        public boolean getValueIsAdjusting()
        如果值由于用户采取的操作而处于更改过程中,则返回true。
        结果
        valueIsAdjusting属性的值
        从以下版本开始:
        1.4
        另请参见:
        setValueIsAdjusting(boolean)
      • setValueIsAdjusting

        public void setValueIsAdjusting​(boolean b)
        设置 valueIsAdjusting属性。
        参数
        b - 新的调整进行中状态
        从以下版本开始:
        1.4
        另请参见:
        getValueIsAdjusting()
      • processAdjustmentEvent

        protected void processAdjustmentEvent​(AdjustmentEvent e)
        处理在此滚动条上发生的调整事件,方法是将它们分派给任何已注册的AdjustmentListener对象。

        除非为此组件启用了调整事件,否则不会调用此方法。 发生以下任一情况时,将启用调整事件:

        • AdjustmentListener对象是通过addAdjustmentListener注册。
        • 调整事件通过enableEvents启用。

        请注意,如果事件参数为null则行为未指定,可能会导致异常。

        参数
        e - 调整事件
        从以下版本开始:
        1.1
        另请参见:
        AdjustmentEventAdjustmentListeneraddAdjustmentListener(java.awt.event.AdjustmentListener)Component.enableEvents(long)
      • paramString

        protected String paramString()
        返回表示此Scrollbar的状态的字符串。 此方法仅用于调试目的,返回字符串的内容和格式可能因实现而异。 返回的字符串可能为空,但可能不是null
        重写:
        paramString在课程 Component
        结果
        此滚动条的参数字符串
      • getAccessibleContext

        public AccessibleContext getAccessibleContext()
        获取AccessibleContext与此相关Scrollbar 对于滚动条,所述AccessibleContext需要一个的形式AccessibleAWTScrollBar 如有必要,将创建一个新的AccessibleAWTScrollBar实例。
        Specified by:
        getAccessibleContext in interface Accessible
        重写:
        getAccessibleContextComponent
        结果
        AccessibleAWTScrollBar作为 AccessibleContext的这个 ScrollBar
        从以下版本开始:
        1.3