- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- java.awt.ScrollPane
-
- 实现的所有接口
-
ImageObserver
,MenuContainer
,Serializable
,Accessible
public class ScrollPaneextends Containerimplements Accessible
一个容器类,它为单个子组件实现自动水平和/或垂直滚动。 滚动条的显示策略可以设置为:- 根据需要:仅在滚动窗格需要时创建和显示滚动条
- 始终:滚动条创建并始终由滚动窗格显示
- never:滚动条永远不会创建或显示滚动条
水平和垂直滚动条的状态由两个
ScrollPaneAdjustable
对象(每个维度一个)表示,它们实现Adjustable
接口。 API提供了访问这些对象的方法,以便可以操纵Adjustable对象上的属性(例如unitIncrement,value等)。某些可调整属性(minimum,maximum,blockIncrement和visibleAmount)由滚动窗格在内部根据滚动窗格及其子窗体的几何设置,这些不应由使用滚动窗格的程序设置。
如果滚动条显示策略定义为“从不”,则滚动窗格仍然可以使用setScrollPosition()方法以编程方式滚动,并且滚动窗格将移动并适当地剪切子项的内容。 如果程序需要创建和管理自己的可调控件,则此策略非常有用。
滚动条的位置由用户在程序外部设置的特定于平台的属性控制。
此容器的初始大小设置为100x100,但可以使用setSize()重置。
默认情况下启用在装有轮子的鼠标上滚动滚轮。 可以使用
setWheelScrollingEnabled
禁用此setWheelScrollingEnabled
。 通过设置水平和垂直可调节的块和单位增量,可以自定义滚轮。 有关如何调度鼠标滚轮事件的信息,请参阅MouseWheelEvent
的类说明。插件用于定义滚动条使用的任何空间以及滚动窗格创建的任何边框。 getInsets()可用于获取insets的当前值。 如果scrollbarsAlwaysVisible的值为false,则insets的值将根据滚动条当前是否可见而动态更改。
- 另请参见:
- Serialized Form
-
-
嵌套类汇总
嵌套类 变量和类型 类 描述 protected class
ScrollPane.AccessibleAWTScrollPane
此类实现ScrollPane
类的可访问性支持。-
嵌套类/接口声明在类 java.awt.Container
Container.AccessibleAWTContainer
-
-
字段汇总
字段 变量和类型 字段 描述 static int
SCROLLBARS_ALWAYS
指定始终显示水平/垂直滚动条,而不管滚动窗格和子项的相应大小。static int
SCROLLBARS_AS_NEEDED
指定仅当子项的大小超过水平/垂直维度中滚动窗格的大小时才应显示水平/垂直滚动条。static int
SCROLLBARS_NEVER
指定不管滚动窗格和子项的相应大小,都不应显示水平/垂直滚动条。-
声明的属性在类 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
-
-
构造方法摘要
构造方法 构造器 描述 ScrollPane()
创建一个新的滚动窗格容器,滚动条显示策略为“根据需要”。ScrollPane(int scrollbarDisplayPolicy)
创建一个新的scrollpane容器。
-
方法摘要
所有方法 实例方法 具体的方法 弃用的方法 变量和类型 方法 描述 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()
返回子项中当前的x,y位置,该位置显示在滚动面板视图端口的0,0位置。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)
启用/禁用滚动以响应鼠标滚轮的移动。-
声明方法的类 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
-
声明方法的类 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
-
-
-
-
字段详细信息
-
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
指定不管滚动窗格和子项的相应大小,都不应显示水平/垂直滚动条。- 另请参见:
- 常数字段值
-
-
构造方法详细信息
-
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,宽度=(子宽度 - 视口宽度),高度=(子高度 - 视口高度)。 这是一种便捷方法,它与表示滚动条状态的Adjustable对象接口。- 参数
-
x
- 要滚动到的x位置 -
y
- 要滚动到的y位置 - 异常
-
NullPointerException
- 如果滚动窗格不包含子项
-
setScrollPosition
public void setScrollPosition(Point p)
滚动到子组件中的指定位置。 只有在滚动窗格包含子项且指定位置在子项的合法滚动范围内时,才会调用此方法。 指定子项的合法滚动边界之外的位置将滚动到最近的合法位置。 法律边界定义为矩形:x = 0,y = 0,宽度=(子宽度 - 视口宽度),高度=(子高度 - 视口高度)。 这是一种便捷方法,它与表示滚动条状态的Adjustable对象接口。- 参数
-
p
- 表示要滚动到的位置的Point - 异常
-
NullPointerException
- 如果p
是null
-
getScrollPosition
public Point getScrollPosition()
返回子项中当前的x,y位置,该位置显示在滚动面板视图端口的0,0位置。 这是一种便捷方法,它与表示滚动条状态的可调整对象相连接。- 结果
- 当前滚动位置的坐标位置
- 异常
-
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
@Deprecatedpublic void layout()
Deprecated.As of JDK version 1.1, replaced bydoLayout()
.
-
printComponents
public void printComponents(Graphics g)
在此滚动窗格中打印该组件。- 重写:
-
printComponents
在类Container
- 参数
-
g
- 指定的图形窗口 - 另请参见:
-
Component.print(java.awt.Graphics)
,Component.printAll(java.awt.Graphics)
-
addNotify
public void addNotify()
创建滚动窗格的同级。- 重写:
-
addNotify
在类Container
- 另请参见:
-
Component.isDisplayable()
,Container.removeNotify()
-
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
否则为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
in interfaceAccessible
- 重写:
-
getAccessibleContext
在课程Component
- 结果
- AccessibleAWTScrollPane,用作此ScrollPane的AccessibleContext
- 从以下版本开始:
- 1.3
-
-