public class Scrollbar extends Component implements Adjustable, Accessible
Scrollbar
类体现了一个滚动条,一个熟悉的用户界面对象。
滚动条提供了一种方便的手段,允许用户从一系列值中进行选择。
以下三个垂直滚动条可用作滑块控件来选择颜色的红色,绿色和蓝色分量:
本示例中的每个滚动条都可以使用与以下代码类似的代码创建:
redSlider=new Scrollbar(Scrollbar.VERTICAL, 0, 1, 0, 255); add(redSlider);
或者,滚动条可以表示一定范围的值。 例如,如果滚动条用于滚动文本,“气泡”(也称为“大拇指”或“滚动框”)的宽度可用于表示可见文本的数量。 下面是一个代表一个范围的滚动条的例子:
在此示例中由气泡表示的值范围是可见量 。 此示例中的水平滚动条可以使用如下代码创建:
ranger = new Scrollbar(Scrollbar.HORIZONTAL, 0, 60, 0, 300); add(ranger);
请注意,滚动条的实际最大值是maximum
减去visible amount
。 在上一个例子中,由于maximum
是visible amount
是60,所以实际的最大值是240.滚动条的范围是0到300.气泡的左边表示滚动条的值。
通常,用户通过鼠标手势来更改滚动条的值。 例如,用户可以上下拖动滚动条的气泡,或者单击滚动条的单位增量或块增量区域。 键盘手势也可以映射到滚动条。 按照惯例, Page Up和Page Down键相当于在滚动条的块增量和块递减区域中单击。
当用户更改滚动条的值时,滚动条接收一个AdjustmentEvent
的实例。 滚动条处理此事件,将其传递给任何已注册的侦听器。
希望通知滚动条值更改的任何对象都应实现AdjustmentListener
,该包是在包java.awt.event
定义的java.awt.event
。 可以通过调用方法addAdjustmentListener
和removeAdjustmentListener
添加和删除侦听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
, Serialized Form
Modifier and Type | Class and Description |
---|---|
protected class |
Scrollbar.AccessibleAWTScrollBar
这个类实现了可访问性支持
Scrollbar 类。
|
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
Modifier and Type | Field and Description |
---|---|
static int |
HORIZONTAL
一个常量,表示水平滚动条。
|
static int |
VERTICAL
一个常量,表示垂直滚动条。
|
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
NO_ORIENTATION
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Constructor and Description |
---|
Scrollbar()
构造一个新的垂直滚动条。
|
Scrollbar(int orientation)
构造具有指定方向的新滚动条。
|
Scrollbar(int orientation, int value, int visible, int minimum, int maximum)
构造具有指定方向,初始值,可见量以及最小值和最大值的新滚动条。
|
Modifier and Type | Method and Description |
---|---|
void |
addAdjustmentListener(AdjustmentListener l)
添加指定的调整监听器以从此滚动条接收AdjustmentEvent的
AdjustmentEvent 。
|
void |
addNotify()
创建
Scrollbar 的同伴。
|
AccessibleContext |
getAccessibleContext()
获取
AccessibleContext 与此相关
Scrollbar 。
|
AdjustmentListener[] |
getAdjustmentListeners()
返回在此滚动条上注册的所有调整监听器的数组。
|
int |
getBlockIncrement()
获取此滚动条的块增量。
|
int |
getLineIncrement()
已弃用
从JDK 1.1版开始,替换为
getUnitIncrement() 。
|
<T extends EventListener> |
getListeners(类<T> listenerType)
返回此
Scrollbar 上当前
Scrollbar 为
FooListener 的所有对象的数组。
|
int |
getMaximum()
获取此滚动条的最大值。
|
int |
getMinimum()
获取此滚动条的最小值。
|
int |
getOrientation()
返回此滚动条的方向。
|
int |
getPageIncrement()
已弃用
截至JDK 1.1版,由
getBlockIncrement() 。
|
int |
getUnitIncrement()
获取此滚动条的单位增量。
|
int |
getValue()
获取此滚动条的当前值。
|
boolean |
getValueIsAdjusting()
如果值正在由于用户执行的操作而改变,则返回true。
|
int |
getVisible()
已弃用
截至JDK 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的
AdjustmentEvent 。
|
void |
setBlockIncrement(int v)
设置此滚动条的块增量。
|
void |
setLineIncrement(int v)
已弃用
截至JDK 1.1版,由
setUnitIncrement(int) 取代。
|
void |
setMaximum(int newMaximum)
设置此滚动条的最大值。
|
void |
setMinimum(int newMinimum)
设置此滚动条的最小值。
|
void |
setOrientation(int orientation)
设置此滚动条的方向。
|
void |
setPageIncrement(int v)
已弃用
截至JDK 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)
设置此滚动条的可见数量。
|
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, revalidate, 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
public static final int HORIZONTAL
public static final int VERTICAL
public Scrollbar() throws HeadlessException
Scrollbar.VERTICAL
value value which controls the location 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)
中描述的约束 。
orientation
- 表示滚动条的方向。
value
- 滚动条的初始值
visible
- 滚动条的可见量,通常由气泡的大小表示
minimum
- 滚动条的最小值
maximum
- 滚动条的最大值
IllegalArgumentException
- 当提供
orientation
参数的非法值时
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true。
setValues(int, int, int, int)
,
GraphicsEnvironment.isHeadless()
public void addNotify()
Scrollbar
的同伴。
对等体允许您修改Scrollbar的Scrollbar
而无需更改其任何功能。
public int getOrientation()
getOrientation
在界面
Adjustable
Scrollbar.HORIZONTAL
或
Scrollbar.VERTICAL
setOrientation(int)
public void setOrientation(int orientation)
orientation
- 此滚动条的方向,
Scrollbar.HORIZONTAL
或
Scrollbar.VERTICAL
IllegalArgumentException
- 如果为
orientation
提供的值不是合法值
getOrientation()
public int getValue()
getValue
在界面
Adjustable
getMinimum()
,
getMaximum()
public void setValue(int newValue)
如果提供的值小于当前minimum
比当前或更大maximum - visibleAmount
,则无论是minimum
或maximum - visibleAmount
被取代时,适当。
通常,程序只能通过调用setValues
来更改滚动条的值。 setValues
方法同时并同步设置滚动条的最小值,最大值,可见量和值属性,使它们相互一致。
调用此方法不会触发AdjustmentEvent
。
setValue
在界面
Adjustable
newValue
- 滚动条的新值
setValues(int, int, int, int)
,
getValue()
,
getMinimum()
,
getMaximum()
public int getMinimum()
getMinimum
在界面
Adjustable
getValue()
,
getMaximum()
public void setMinimum(int newMinimum)
当setMinimum
时,最小值被更改,其他值(包括最大值,可见量和当前滚动条值)被改变为与新的最小值一致。
一般来说,程序只能通过调用setValues
来更改滚动条的最小值。 setValues
方法同时并同步设置滚动条的最小值,最大值,可见量和值属性,使它们相互一致。
请注意,将最小值设置为Integer.MAX_VALUE
将导致新的最小值设置为Integer.MAX_VALUE - 1
。
setMinimum
在界面
Adjustable
newMinimum
- 此滚动条的最小值
setValues(int, int, int, int)
,
setMaximum(int)
public int getMaximum()
getMaximum
在界面
Adjustable
getValue()
,
getMinimum()
public void setMaximum(int newMaximum)
当setMaximum
时,最大值被更改,其他值(包括最小值,可见量和当前滚动条值)被更改为与新的最大值一致。
一般来说,程序只能通过调用setValues
来更改滚动条的最大值。 setValues
方法同时并同步设置滚动条的最小值,最大值,可见量和值属性,使它们相互一致。
请注意,将最大值设置为Integer.MIN_VALUE
将导致新的最大值设置为Integer.MIN_VALUE + 1
。
setMaximum
在界面
Adjustable
newMaximum
- 此滚动条的最大值
setValues(int, int, int, int)
,
setMinimum(int)
public int getVisibleAmount()
当使用滚动条来选择范围的值时,可见量用于表示当前可见的值的范围。 滚动条的大小(也称为大拇指或滚动框)通常会给出可视量与滚动条范围的关系的可视化表示。 请注意,根据平台,可见量属性的值可能不会被气泡大小视觉指示。
当滚动条不可移动时,滚动条的气泡可能无法显示(例如,当它占据滚动条的轨迹的整个长度时,或当滚动条被禁用时)。 气泡是否显示不会影响getVisibleAmount
返回的值。
getVisibleAmount
在界面
Adjustable
setVisibleAmount(int)
@Deprecated public int getVisible()
getVisibleAmount()
。
public void setVisibleAmount(int newAmount)
当使用滚动条来选择范围的值时,可见量用于表示当前可见的值的范围。 滚动条的大小(也称为大拇指或滚动框)通常会给出可视量与滚动条范围的关系的可视化表示。 请注意,根据平台,可见量属性的值可能不会被气泡大小视觉指示。
当滚动条不可移动时,滚动条的气泡可能无法显示(例如,当它占据滚动条的轨迹的整个长度时,或当滚动条被禁用时)。 泡沫是否显示不会影响getVisibleAmount
返回的值。
如果提供的可见量小于one
比当前或更大maximum - minimum
,则无论是one
或maximum - minimum
被取代时,适当。
通常,一个程序只能通过调用setValues
来更改滚动条的值。 setValues
方法同时并同步设置滚动条的最小值,最大值,可见量和值属性,使它们相互一致。
setVisibleAmount
在界面
Adjustable
newAmount
- 新的可见数量
getVisibleAmount()
,
setValues(int, int, int, int)
public void setUnitIncrement(int v)
单位增量是当用户通过滚动条接收到的调整事件的鼠标或键盘手势激活滚动条的单位增量区域时加或减的值。 单位增量必须大于零。 将单位增量设置为小于1的值将导致设置值为1。
在某些操作系统中,底层控件可以忽略此属性。
setUnitIncrement
在界面
Adjustable
v
- 增加或减少滚动条值的量
getUnitIncrement()
@Deprecated public void setLineIncrement(int v)
setUnitIncrement(int)
取代。
public int getUnitIncrement()
单位增量是当用户通过滚动条接收到的调整事件的鼠标或键盘手势激活滚动条的单位增量区域时加或减的值。 单位增量必须大于零。
在某些操作系统中,底层控件可以忽略此属性。
getUnitIncrement
在界面
Adjustable
setUnitIncrement(int)
@Deprecated public int getLineIncrement()
getUnitIncrement()
。
public void setBlockIncrement(int v)
块增量是当用户通过滚动条接收到的调整事件的鼠标或键盘手势来激活滚动条的块递增区域时加或减的值。 块增量必须大于零。 将块增量设置为小于1的值将导致设置值为1。
setBlockIncrement
在界面
Adjustable
v
- 增加或减少滚动条值的量
getBlockIncrement()
@Deprecated public void setPageIncrement(int v)
setBlockIncrement()
替换。
public int getBlockIncrement()
块增量是当用户通过滚动条接收到的调整事件的鼠标或键盘手势来激活滚动条的块递增区域时加或减的值。 块增量必须大于零。
getBlockIncrement
在界面
Adjustable
setBlockIncrement(int)
@Deprecated public int getPageIncrement()
getBlockIncrement()
取代。
public void setValues(int value, int visible, int minimum, int maximum)
value
, visibleAmount
, minimum
和maximum
。
如果为这些属性提供的值不一致或不正确,则将更改它们以确保一致性。
该方法同时并同步设置四个滚动条属性的值,确保这些属性的值相互一致。 它强制执行以下限制: maximum
必须大于minimum
, maximum - minimum
不得大于Integer.MAX_VALUE
, visibleAmount
必须大于零。 visibleAmount
不得大于maximum - minimum
, value
必须不小于minimum
,并value
必须不大于maximum - visibleAmount
调用此方法不会触发AdjustmentEvent
。
value
- 是当前窗口中的位置
visible
- 是滚动条的可见数量
minimum
- 是滚动条的最小值
maximum
- 是滚动条的最大值
setMinimum(int)
,
setMaximum(int)
,
setVisibleAmount(int)
,
setValue(int)
public boolean getValueIsAdjusting()
valueIsAdjusting
属性
setValueIsAdjusting(boolean)
public void setValueIsAdjusting(boolean b)
valueIsAdjusting
属性。
b
- 新的调整进度状态
getValueIsAdjusting()
public void addAdjustmentListener(AdjustmentListener l)
AdjustmentEvent
。
如果l为null
,则不抛出异常,不执行任何操作。
请参阅AWT Threading Issues有关AWT的线程模型的细节。
addAdjustmentListener
在界面
Adjustable
l
- 调整听众
removeAdjustmentListener(java.awt.event.AdjustmentListener)
, getAdjustmentListeners()
, AdjustmentEvent
, AdjustmentListener
public void removeAdjustmentListener(AdjustmentListener l)
AdjustmentEvent
。
如果l为null
,则不会抛出任何异常,也不会执行任何操作。
请参阅AWT Threading Issues有关AWT的线程模型的细节。
removeAdjustmentListener
在界面
Adjustable
l
- 调整听众
addAdjustmentListener(java.awt.event.AdjustmentListener)
, getAdjustmentListeners()
, AdjustmentEvent
, AdjustmentListener
public AdjustmentListener[] getAdjustmentListeners()
AdjustmentListener
s或一个空数组,如果没有调整监听器当前注册
addAdjustmentListener(java.awt.event.AdjustmentListener)
, removeAdjustmentListener(java.awt.event.AdjustmentListener)
, AdjustmentEvent
, AdjustmentListener
public <T extends EventListener> T[] getListeners(类<T> listenerType)
FooListener
在这个S Scrollbar
。
FooListener
使用addFooListener
。
您可以使用类文字指定listenerType
参数,如FooListener.class
。 例如,您可以查询Scrollbar
c
其与下面的代码鼠标监听器:
MouseListener[] mls = (MouseListener[])(c.getListeners(MouseListener.class));
如果没有这样的侦听器存在,这个方法返回一个空数组。
getListeners
在
Component
listenerType
- 所请求的听众的类型;
此参数应指定从java.util.EventListener
下降的java.util.EventListener
FooListener
的所有对象的数组,如果没有添加此类侦听器,则为空数组
ClassCastException
- 如果
listenerType
未指定实现java.util.EventListener的类或
java.util.EventListener
Component.getComponentListeners()
,
Component.getFocusListeners()
,
Component.getHierarchyListeners()
,
Component.getHierarchyBoundsListeners()
,
Component.getKeyListeners()
,
Component.getMouseListeners()
,
Component.getMouseMotionListeners()
,
Component.getMouseWheelListeners()
,
Component.getInputMethodListeners()
,
Component.getPropertyChangeListeners()
protected void processEvent(AWTEvent e)
AdjustmentEvent
一个实例,它将调用processAdjustmentEvent
方法。
否则,它调用其超类的processEvent
方法。
请注意,如果事件参数为null
则该行为未指定,并可能导致异常。
processEvent
在
Component
e
- 事件
AdjustmentEvent
, processAdjustmentEvent(java.awt.event.AdjustmentEvent)
protected void processAdjustmentEvent(AdjustmentEvent e)
AdjustmentListener
对象来处理此滚动条上发生的调整事件。
除非为此组件启用调整事件,否则不调用此方法。 当发生以下其中一种情况时,启用调整事件:
AdjustmentListener
对象通过addAdjustmentListener
。 enableEvents
启用。 请注意,如果事件参数为null
则该行为未指定,可能会导致异常。
e
- 调整事件
AdjustmentEvent
, AdjustmentListener
, addAdjustmentListener(java.awt.event.AdjustmentListener)
, Component.enableEvents(long)
protected String paramString()
Scrollbar
的状态的字符串。
该方法仅用于调试目的,并且返回的字符串的内容和格式可能因实现而异。
返回的字符串可能为空,但可能不是null
。
paramString
在
Component
public AccessibleContext getAccessibleContext()
AccessibleContext
与此相关Scrollbar
。
对于滚动条,所述AccessibleContext
需要一个的形式AccessibleAWTScrollBar
。
如有必要,将创建一个新的AccessibleAWTScrollBar
实例。
getAccessibleContext
在界面
Accessible
getAccessibleContext
在
Component
AccessibleAWTScrollBar
,作为这个
AccessibleContext
的
ScrollBar