Module  java.desktop
软件包  java.awt

Class Scrollbar

  • All Implemented Interfaces:
    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);
     

    请注意,滚动条的实际最大值为maximumvisible 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
        一个常量,表示水平滚动条。
        另请参见:
        Constant Field Values
      • VERTICAL

        public static final int VERTICAL
        一个常量,表示垂直滚动条。
        另请参见:
        Constant Field Values
    • 构造方法详细信息

      • 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 ,那么minimummaximum - visibleAmount将被酌情替代。

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

        调用此方法不会触发AdjustmentEvent

        Specified by:
        setValue在接口 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在接口 Adjustable
        参数
        newMaximum - 此滚动条的最大值
        从以下版本开始:
        1.1
        另请参见:
        setValues(int, int, int, int)setMinimum(int)
      • getVisibleAmount

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

        当使用滚动条来选择范围的值时,可见量用于表示当前可见的值的范围。 滚动条的大小(也称为大拇指或滚动框)通常会给出可视量与滚动条范围的关系的可视化表示。 请注意,根据平台,可见量属性的值可能不会被气泡的大小视觉指示。

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

        Specified by:
        getVisibleAmount在接口 Adjustable
        结果
        该滚动条的可见数量
        从以下版本开始:
        1.1
        另请参见:
        setVisibleAmount(int)
      • getVisible

        @Deprecated
        public int getVisible​()
        已过时。 从JDK 1.1版开始,由getVisibleAmount()替代。
        返回此滚动条的可见数量。
        结果
        该滚动条的可见数量
      • setVisibleAmount

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

        当使用滚动条来选择范围的值时,可见量用于表示当前可见的值的范围。 滚动条的大小(也称为大拇指或滚动框)通常会给出可视量与滚动条范围的关系的可视化表示。 请注意,根据平台,可见量属性的值可能不会被气泡的大小视觉指示。

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

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

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

        Specified by:
        setVisibleAmount在接口 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)
        已过时。 从JDK 1.1版开始,由setUnitIncrement(int)替代。
        设置此滚动条的单位增量。
        参数
        v - 增量值
      • getUnitIncrement

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

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

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

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

        @Deprecated
        public int getLineIncrement​()
        已过时。 从JDK 1.1版开始,由getUnitIncrement()替代。
        返回此滚动条的单位增量。
        结果
        该滚动条的单位增量
      • setBlockIncrement

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

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

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

        @Deprecated
        public void setPageIncrement​(int v)
        已过时。 从JDK 1.1版开始,由setBlockIncrement()替代。
        设置此滚动条的块增量。
        参数
        v - 块增量
      • getBlockIncrement

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

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

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

        @Deprecated
        public int getPageIncrement​()
        已过时。 从JDK 1.1版开始,由getBlockIncrement()替代。
        返回此滚动条的块增量。
        结果
        该滚动条的块增量
      • setValues

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

        该方法同时并同步设置四个滚动条属性的值,确保这些属性的值相互一致。 它强制执行以下限制: 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()
      • processEvent

        protected void processEvent​(AWTEvent e)
        处理此滚动条上的事件。 如果事件是AdjustmentEvent一个实例,它将调用processAdjustmentEvent方法。 否则,它调用其超类的processEvent方法。

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

        重写:
        processEvent在类 Component
        参数
        e - 事件
        从以下版本开始:
        1.1
        另请参见:
        AdjustmentEventprocessAdjustmentEvent(java.awt.event.AdjustmentEvent)
      • 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
        重写:
        paramStringComponent
        结果
        此滚动条的参数字符串
      • getAccessibleContext

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