- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- java.awt.ScrollPane
-
- All Implemented Interfaces:
-
ImageObserver
,MenuContainer
,Serializable
,Accessible
public class ScrollPane extends Container implements Accessible
一个容器类,用于实现单个子组件的自动水平和/或垂直滚动。 滚动条的显示策略可以设置为:- 根据需要:滚动条仅在滚动窗口需要时创建和显示
- 总是:滚动条创建并始终由滚动画面显示
- 从不:滚动条从未创建或由滚动画面显示
水平和垂直滚动条的状态由实现
Adjustable
接口的两个ScrollPaneAdjustable
对象(每个维度一个)表示。 API提供访问这些对象的方法,以便可以操纵Adjustable对象上的属性(如unitIncrement,value等)。某些可调整的属性(最小值,最大值,块输入和可见的安装)由滚动条内部根据滚动条及其子代的几何形状设置,这些属性不应由使用滚动条的程序设置。
如果滚动条显示策略被定义为“从不”,则滚动窗格仍然可以使用setScrollPosition()方法以编程方式滚动,滚动窗格将适当地移动和剪贴子内容。 如果程序需要创建和管理自己的可调节控件,则此策略很有用。
滚动条的放置由用户在程序外部设置的平台特定属性控制。
此容器的初始大小设置为100x100,但可以使用setSize()重置。
默认情况下,启用带轮盘鼠标的滚轮滚动。 这可以使用
setWheelScrollingEnabled
禁用。 可以通过设置水平和垂直可调节的块和单位增量来定制轮滚动。 有关如何调度鼠标滚轮事件的信息,请参阅MouseWheelEvent
的类描述。Insets用于定义滚动条和滚动窗格创建的任何边框所使用的空间。 getInsets()可用于获取插值的当前值。 如果scrollbarsAlwaysVisible的值为false,则插值的值将根据滚动条当前是否可见而动态更改。
- 另请参见:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 protected class
ScrollPane.AccessibleAWTScrollPane
该类实现ScrollPane
类的可访问性支持。-
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
-
-
Field Summary
Fields Modifier and Type Field 描述 static int
SCROLLBARS_ALWAYS
指定水平/垂直滚动条应始终显示,而不管滚动条和子对象的大小如何。static int
SCROLLBARS_AS_NEEDED
指定仅当小孩的大小超过水平/垂直维度中滚动窗口的大小时才应显示水平/垂直滚动条。static int
SCROLLBARS_NEVER
指定水平/垂直滚动条不应该显示,而不管滚动条和子的相应大小。-
Fields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
-
构造方法摘要
构造方法 Constructor 描述 ScrollPane()
创建一个滚动条显示策略为“根据需要”的新的滚动容器。ScrollPane(int scrollbarDisplayPolicy)
创建一个新的scrollpane容器。
-
方法摘要
所有方法 接口方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 protected void
addImpl(Component comp, Object constraints, int index)
将指定的组件添加到此滚动窗格容器。void
addNotify()
创建滚动窗格的对等体。void
doLayout()
通过将其小孩调整为首选尺寸,将这个容器放在一起。protected boolean
eventTypeEnabled(int type)
如果启用滚动滚动,我们将为MouseWheelEvents返回trueAccessibleContext
getAccessibleContext()
获取与此ScrollPane关联的AccessibleContext。Adjustable
getHAdjustable()
返回表示水平滚动条状态的ScrollPaneAdjustable
对象。int
getHScrollbarHeight()
返回一个水平滚动条占用的高度,它与滚动窗格当前是否显示无关。int
getScrollbarDisplayPolicy()
返回滚动条的显示策略。Point
getScrollPosition()
返回显示在滚动面板视图端口的0,0位置的子项内的当前x,y位置。Adjustable
getVAdjustable()
返回表示垂直滚动条状态的ScrollPaneAdjustable
对象。Dimension
getViewportSize()
返回滚动窗格视图端口的当前大小。int
getVScrollbarWidth()
返回垂直滚动条将占用的宽度,该宽度与滚动窗格当前是否显示无关。boolean
isWheelScrollingEnabled()
指示是否会响应于鼠标滚轮进行滚动。void
layout()
已过时。从JDK 1.1版开始,由doLayout()
取代。String
paramString()
返回表示ScrollPane
的状态的字符串。void
printComponents(Graphics g)
在此滚动窗格中打印组件。protected void
processMouseWheelEvent(MouseWheelEvent e)
通过滚动适当的量来处理传递给此ScrollPane
的鼠标滚轮事件。void
setLayout(LayoutManager mgr)
设置此容器的布局管理器。void
setScrollPosition(int x, int y)
滚动到子组件中的指定位置。void
setScrollPosition(Point p)
滚动到子组件中的指定位置。void
setWheelScrollingEnabled(boolean handleWheel)
启用/禁用滚动以响应鼠标滚轮的移动。-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, revalidate, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setMixingCutoutShape, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getLayout, getListeners, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, isValidateRoot, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, update, validate, validateTree
-
-
-
-
字段详细信息
-
SCROLLBARS_AS_NEEDED
public static final int SCROLLBARS_AS_NEEDED
指定仅当小孩的大小超过水平/垂直维度中滚动窗口的大小时才应显示水平/垂直滚动条。- 另请参见:
- Constant Field Values
-
SCROLLBARS_ALWAYS
public static final int SCROLLBARS_ALWAYS
指定水平/垂直滚动条应始终显示,而不管滚动条和子对象的大小如何。- 另请参见:
- Constant Field Values
-
SCROLLBARS_NEVER
public static final int SCROLLBARS_NEVER
指定水平/垂直滚动条不应该显示,而不管滚动条和子的相应大小。- 另请参见:
- Constant Field Values
-
-
构造方法详细信息
-
ScrollPane
public ScrollPane() throws HeadlessException
创建一个滚动条显示策略为“根据需要”的新的滚动容器。- 异常
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true - 另请参见:
-
GraphicsEnvironment.isHeadless()
-
ScrollPane
@ConstructorProperties("scrollbarDisplayPolicy") public ScrollPane(int scrollbarDisplayPolicy) throws HeadlessException
创建一个新的scrollpane容器。- 参数
-
scrollbarDisplayPolicy
- 应显示滚动条的政策 - 异常
-
IllegalArgumentException
- 如果指定的滚动条显示策略无效 -
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true - 另请参见:
-
GraphicsEnvironment.isHeadless()
-
-
方法详细信息
-
addImpl
protected final void addImpl(Component comp, Object constraints, int index)
将指定的组件添加到此滚动窗格容器。 如果滚动窗格具有现有的子组件,则删除该组件并添加新组件。- 重写:
-
addImpl
在Container
- 参数
-
comp
- 要添加的组件 -
constraints
- 不适用 -
index
- 子组件的位置(必须<= 0) - 另请参见:
-
Container.add(Component)
,Container.add(Component, int)
,Container.add(Component, java.lang.Object)
,Container.invalidate()
,LayoutManager
,LayoutManager2
-
getScrollbarDisplayPolicy
public int getScrollbarDisplayPolicy()
返回滚动条的显示策略。- 结果
- 滚动条的显示策略
-
getViewportSize
public Dimension getViewportSize()
返回滚动窗格视图端口的当前大小。- 结果
- 视图端口的大小(以像素为单位)
-
getHScrollbarHeight
public int getHScrollbarHeight()
返回一个水平滚动条占用的高度,它与滚动窗格当前是否显示无关。- 结果
- 水平滚动条的高度(以像素为单位)
-
getVScrollbarWidth
public int getVScrollbarWidth()
返回垂直滚动条将占用的宽度,该宽度与滚动窗格当前是否显示无关。- 结果
- 垂直滚动条的宽度(以像素为单位)
-
getVAdjustable
public Adjustable getVAdjustable()
返回表示垂直滚动条状态的ScrollPaneAdjustable
对象。 该方法的声明返回类型为Adjustable
以保持向后兼容性。- 结果
- 垂直滚动条状态
- 另请参见:
-
ScrollPaneAdjustable
-
getHAdjustable
public Adjustable getHAdjustable()
返回表示水平滚动条状态的ScrollPaneAdjustable
对象。 此方法的声明返回类型为Adjustable
以保持向后兼容性。- 结果
- 水平滚动条状态
- 另请参见:
-
ScrollPaneAdjustable
-
setScrollPosition
public void setScrollPosition(int x, int y)
滚动到子组件中的指定位置。 调用此方法仅在滚动窗格包含子项时有效。 指定小孩合法滚动边界之外的位置将滚动到最接近的法定位置。 法定边界定义为矩形:x = 0,y = 0,width =(子宽度 - 视图端口宽度),height =(子高度 - 视图端口高度)。 这是一种方便的方法,它与可表示滚动条状态的可调整对象相连接。- 参数
-
x
- 要滚动到的x位置 -
y
- 要滚动到的位置 - 异常
-
NullPointerException
- 如果滚动条不包含小孩
-
setScrollPosition
public void setScrollPosition(Point p)
滚动到子组件中的指定位置。 调用此方法仅在滚动窗格包含子项并且指定位置在子代码的合法滚动范围内时有效。 指定小孩合法滚动边界之外的位置将滚动到最接近的法定位置。 法定边界定义为矩形:x = 0,y = 0,width =(子宽度 - 视图端口宽度),height =(子高度 - 视图端口高度)。 这是一种方便的方法,它与可表示滚动条状态的可调整对象相连接。- 参数
-
p
- 表示要滚动到的位置的点 - 异常
-
NullPointerException
- 如果p
是null
-
getScrollPosition
public Point getScrollPosition()
返回显示在滚动面板视图端口的0,0位置的子项内的当前x,y位置。 这是一种与表示滚动条的状态的可调节对象相连接的方便方法。- 结果
- 当前滚动位置的坐标位置
- 异常
-
NullPointerException
- 如果滚动条不包含小孩
-
setLayout
public final void setLayout(LayoutManager mgr)
设置此容器的布局管理器。 该方法被覆盖以防止布局mgr被设置。- 重写:
-
setLayout
在Container
- 参数
-
mgr
- 指定的布局管理器 - 另请参见:
-
Container.doLayout()
,Container.getLayout()
,Container.invalidate()
-
doLayout
public void doLayout()
通过将其小孩调整为首选尺寸,将这个容器放在一起。 如果小孩的新的优选大小导致当前滚动位置无效,滚动位置被设置为最接近的有效位置。- 重写:
-
doLayout
在Container
- 另请参见:
-
Component.validate()
-
layout
@Deprecated public void layout()
已过时。 从JDK 1.1版开始,由doLayout()
替代。
-
printComponents
public void printComponents(Graphics g)
在此滚动窗格中打印组件。- 重写:
-
printComponents
在Container
- 参数
-
g
- 指定的图形窗口 - 另请参见:
-
Component.print(java.awt.Graphics)
,Component.printAll(java.awt.Graphics)
-
addNotify
public void addNotify()
创建滚动窗格的对等体。
-
paramString
public String paramString()
返回表示ScrollPane
的状态的字符串。 该方法仅用于调试目的,并且返回的字符串的内容和格式可能因实现而异。 返回的字符串可能为空,但可能不是null
。- 重写:
-
paramString
在Container
- 结果
- 此滚动窗格的参数字符串
-
processMouseWheelEvent
protected void processMouseWheelEvent(MouseWheelEvent e)
通过滚动适当的量来处理传递给此ScrollPane
的鼠标滚轮事件。请注意,如果事件参数为
null
则行为未指定,可能会导致异常。- 重写:
-
processMouseWheelEvent
在Component
- 参数
-
e
- 鼠标滚轮事件 - 从以下版本开始:
- 1.4
- 另请参见:
-
MouseWheelEvent
,MouseWheelListener
,Component.addMouseWheelListener(java.awt.event.MouseWheelListener)
,Component.enableEvents(long)
-
eventTypeEnabled
protected boolean eventTypeEnabled(int type)
如果启用滚动滚动,我们将为MouseWheelEvents返回true- 从以下版本开始:
- 1.4
-
setWheelScrollingEnabled
public void setWheelScrollingEnabled(boolean handleWheel)
启用/禁用滚动以响应鼠标滚轮的移动。 轮滚动默认启用。- 参数
-
handleWheel
-true
如果滚动应该为MouseWheelEvent自动完成,否则为false
。 - 从以下版本开始:
- 1.4
- 另请参见:
-
isWheelScrollingEnabled()
,MouseWheelEvent
,MouseWheelListener
-
isWheelScrollingEnabled
public boolean isWheelScrollingEnabled()
指示是否会响应于鼠标滚轮进行滚动。 轮滚动默认启用。- 结果
-
true
如果滚轮启用; 否则false
- 从以下版本开始:
- 1.4
- 另请参见:
-
setWheelScrollingEnabled(boolean)
-
getAccessibleContext
public AccessibleContext getAccessibleContext()
获取与此ScrollPane关联的AccessibleContext。 对于滚动窗格,AccessibleContext采用AccessibleAWTScrollPane的形式。 如有必要,将创建一个新的AccessibleAWTScrollPane实例。- Specified by:
-
getAccessibleContext
在接口Accessible
- 重写:
-
getAccessibleContext
在Component
- 结果
- 一个AccessibleAWTScrollPane,用作此ScrollPane的AccessibleContext
- 从以下版本开始:
- 1.3
-
-