java.lang.Object
java.awt.Component
java.awt.Container
java.awt.ScrollPane
- 所有已实现的接口:
-
ImageObserver
,MenuContainer
,Serializable
,Accessible
实现了为单个子组件实现自动水平和/或垂直滚动的容器类。滚动条的显示策略可以设置为:
- 根据需要:仅在滚动窗格需要时创建和显示滚动条
- 始终:滚动窗格始终创建并显示滚动条
- 从不:滚动窗格从不创建或显示滚动条
水平和垂直滚动条的状态由两个ScrollPaneAdjustable
对象表示(每个维度一个),它们实现了Adjustable
接口。API提供了访问这些对象的方法,以便可以操作Adjustable对象上的属性(例如unitIncrement、value等)。
某些可调整属性(minimum、maximum、blockIncrement和visibleAmount)由滚动窗格根据滚动窗格及其子组件的几何形状在内部设置,这些属性不应该由使用滚动窗格的程序设置。
如果滚动条显示策略定义为“从不”,则仍然可以通过setScrollPosition()方法以编程方式滚动滚动窗格,并且滚动窗格将适当地移动和裁剪子组件的内容。如果程序需要创建和管理自己的可调控件,则此策略很有用。
滚动条的放置由用户在程序之外设置的特定于平台的属性控制。
此容器的初始大小设置为100x100,但可以使用setSize()重新设置。
默认情况下启用使用带有滚轮的鼠标进行滚动。可以使用setWheelScrollingEnabled
来禁用此功能。可以通过设置水平和垂直Adjustables的块和单位增量来自定义滚动。有关如何分派鼠标滚轮事件的信息,请参阅MouseWheelEvent
的类描述。
插图用于定义滚动条使用的任何空间以及滚动窗格创建的任何边框。可以使用getInsets()获取当前插图值。如果scrollbarsAlwaysVisible的值为false,则插图的值将根据滚动条当前是否可见而动态更改。
- 参见:
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected class
此类为ScrollPane
类实现了辅助功能支持。Nested classes/interfaces declared in class java.awt.Container
Container.AccessibleAWTContainer
Nested classes/interfaces declared in class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
指定水平/垂直滚动条应始终显示,而不考虑滚动窗格和子组件的相应大小。static final int
指定仅当子组件的大小超过水平/垂直维度的滚动窗格大小时才显示水平/垂直滚动条。static final int
指定水平/垂直滚动条应始终不显示,而不考虑滚动窗格和子组件的相应大小。Fields declared in class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Fields declared in interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
Constructor Summary
ConstructorDescription创建一个具有“根据需要”滚动条显示策略的新滚动窗格容器。ScrollPane
(int scrollbarDisplayPolicy) 创建一个新的滚动窗格容器。 -
Method Summary
Modifier and TypeMethodDescriptionprotected final void
将指定的组件添加到此滚动窗格容器。void
创建滚动窗格的对等体。void
doLayout()
通过将其子组件调整为其首选大小来布局此容器。protected boolean
eventTypeEnabled
(int type) 如果启用了滚轮滚动,则对于MouseWheelEvents,我们返回true获取与此滚动窗格关联的AccessibleContext。返回表示水平滚动条状态的ScrollPaneAdjustable
对象。int
返回水平滚动条占用的高度,这与滚动窗格当前是否显示无关。int
返回滚动条的显示策略。返回在子组件中显示在滚动面板视口的0,0位置处的当前x、y位置。返回表示垂直滚动条状态的ScrollPaneAdjustable
对象。返回滚动窗格视口的当前大小。int
返回垂直滚动条占用的宽度,这与滚动窗格当前是否显示无关。boolean
指示是否响应鼠标滚轮进行滚动。void
layout()
已弃用。返回表示此ScrollPane
状态的字符串。void
打印此滚动窗格中的组件。protected void
处理传递给此ScrollPane
的鼠标滚轮事件,以滚动适当的量。final void
setLayout
(LayoutManager mgr) 为此容器设置布局管理器。void
setScrollPosition
(int x, int y) 滚动到子组件中的指定位置。void
滚动到子组件中的指定位置。void
setWheelScrollingEnabled
(boolean handleWheel) 启用/禁用响应鼠标滚轮移动进行滚动。Methods declared in 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
Methods declared in 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
-
Field Details
-
SCROLLBARS_AS_NEEDED
public static final int SCROLLBARS_AS_NEEDED指定仅当子组件的大小超过水平/垂直维度的滚动窗格大小时才显示水平/垂直滚动条。- 参见:
-
SCROLLBARS_ALWAYS
public static final int SCROLLBARS_ALWAYS指定水平/垂直滚动条应始终显示,而不考虑滚动窗格和子组件的相应大小。- 参见:
-
SCROLLBARS_NEVER
public static final int SCROLLBARS_NEVER指定水平/垂直滚动条应始终不显示,而不考虑滚动窗格和子组件的相应大小。- 参见:
-
-
Constructor Details
-
ScrollPane
创建一个具有“根据需要”滚动条显示策略的新滚动窗格容器。- 抛出:
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true - 参见:
-
ScrollPane
@ConstructorProperties("scrollbarDisplayPolicy") public ScrollPane(int scrollbarDisplayPolicy) throws HeadlessException 创建一个新的滚动窗格容器。- 参数:
-
scrollbarDisplayPolicy
- 滚动条应何时显示的策略 - 抛出:
-
IllegalArgumentException
- 如果指定的滚动条显示策略无效 -
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true - 参见:
-
-
Method Details
-
addImpl
将指定的组件添加到此滚动窗格容器。如果滚动窗格有现有子组件,则会删除该组件并添加新组件。 -
getScrollbarDisplayPolicy
public int getScrollbarDisplayPolicy()返回滚动条的显示策略。- 返回:
- 滚动条的显示策略
-
getViewportSize
返回滚动窗格视口的当前大小。- 返回:
- 视口的大小(以像素为单位)
-
getHScrollbarHeight
public int getHScrollbarHeight()返回水平滚动条占用的高度,这与滚动窗格当前是否显示无关。- 返回:
- 水平滚动条的高度(以像素为单位)
-
getVScrollbarWidth
public int getVScrollbarWidth()返回垂直滚动条占用的宽度,这与滚动窗格当前是否显示无关。- 返回:
- 垂直滚动条的宽度(以像素为单位)
-
getVAdjustable
返回表示垂直滚动条状态的ScrollPaneAdjustable
对象。此方法的声明返回类型为Adjustable
,以保持向后兼容性。- 返回:
- 垂直滚动条状态
- 参见:
-
getHAdjustable
- 返回值:
- 水平滚动条的状态
- 参见:
-
setScrollPosition
public void setScrollPosition(int x, int y) 滚动到子组件中指定的位置。只有当滚动窗格包含子组件时,才能调用此方法。指定超出子组件合法滚动范围的位置将滚动到最接近的合法位置。合法范围定义为矩形:x = 0,y = 0,宽度 =(子组件宽度 - 视口宽度),高度 =(子组件高度 - 视口高度)。这是一个方便的方法,与表示滚动条状态的可调对象进行交互。- 参数:
-
x
- 要滚动到的x位置 -
y
- 要滚动到的y位置 - 抛出:
-
NullPointerException
- 如果滚动窗格不包含子组件
-
setScrollPosition
滚动到子组件中指定的位置。只有当滚动窗格包含子组件并且指定的位置在子组件的合法滚动范围内时,才能调用此方法。指定超出子组件合法滚动范围的位置将滚动到最接近的合法位置。合法范围定义为矩形:x = 0,y = 0,宽度 =(子组件宽度 - 视口宽度),高度 =(子组件高度 - 视口高度)。这是一个方便的方法,与表示滚动条状态的可调对象进行交互。- 参数:
-
p
- 表示要滚动到的位置的点 - 抛出:
-
NullPointerException
- 如果p
为null
-
getScrollPosition
返回在滚动面板视口的0,0位置显示的子组件的当前x,y位置。这是一个方便的方法,与表示滚动条状态的可调对象进行交互。- 返回值:
- 当前滚动位置的坐标位置
- 抛出:
-
NullPointerException
- 如果滚动窗格不包含子组件
-
setLayout
设置此容器的布局管理器。覆盖此方法以防止设置布局管理器。 -
doLayout
public void doLayout()通过将其子组件调整为其首选大小来布局此容器。如果子组件的新首选大小导致当前滚动位置无效,则将滚动位置设置为最接近的有效位置。 -
layout
Deprecated.As of JDK version 1.1, replaced bydoLayout()
. -
printComponents
在此滚动窗格中打印组件。- 覆盖:
-
printComponents
在类Container
- 参数:
-
g
- 指定的Graphics窗口 - 参见:
-
addNotify
public void addNotify()创建滚动窗格的对等体。 -
paramString
返回表示此ScrollPane
状态的字符串。此方法仅用于调试目的,返回的字符串的内容和格式可能因实现而异。返回的字符串可能为空,但不能为null
。- 覆盖:
-
paramString
在类Container
- 返回值:
- 此滚动窗格的参数字符串
-
processMouseWheelEvent
处理传递给此ScrollPane
的鼠标滚轮事件,通过滚动适当的量。请注意,如果事件参数为
null
,行为是未指定的,可能会导致异常。- 覆盖:
-
processMouseWheelEvent
在类Component
- 参数:
-
e
- 鼠标滚轮事件 - 自JDK版本:
- 1.4
- 参见:
-
eventTypeEnabled
protected boolean eventTypeEnabled(int type) 如果启用了滚轮滚动,则对MouseWheelEvents返回true- 自JDK版本:
- 1.4
-
setWheelScrollingEnabled
public void setWheelScrollingEnabled(boolean handleWheel) 启用/禁用响应鼠标滚轮移动的滚动。默认情况下启用滚轮滚动。- 参数:
-
handleWheel
- 如果应自动为MouseWheelEvent执行滚动,则为true
,否则为false
。 - 自JDK版本:
- 1.4
- 参见:
-
isWheelScrollingEnabled
public boolean isWheelScrollingEnabled()指示是否响应鼠标滚轮进行滚动。默认情况下启用滚轮滚动。- 返回值:
-
如果启用了滚轮滚动,则返回
true
;否则返回false
- 自JDK版本:
- 1.4
- 参见:
-
getAccessibleContext
获取与此滚动窗格关联的AccessibleContext。对于滚动窗格,AccessibleContext采用AccessibleAWTScrollPane的形式。如有必要,将创建一个新的AccessibleAWTScrollPane实例。- 指定者:
-
getAccessibleContext
在接口Accessible
- 覆盖:
-
getAccessibleContext
在类Component
- 返回值:
- 作为此滚动窗格的AccessibleContext的AccessibleAWTScrollPane
- 自JDK版本:
- 1.3
-
doLayout()
替换。