java.awt

接口
异常
错误
java.lang.Object
  继承者 java.awt.Component
      继承者 java.awt.Container
          继承者 java.awt.ScrollPane
所有已实现的接口:
ImageObserver, MenuContainer, Serializable, Accessible

public class ScrollPane
     
extends Container
implements Accessible

实现用于单个子组件的自动水平和/或垂直滚动的容器类。滚动条的显示策略可以设置如下:

  1. as needed: 创建滚动条,且只在滚动窗格需要时显示
  2. always: 创建滚动条,且滚动窗格总是显示滚动条
  3. never: 滚动窗格永远不创建或显示滚动条

水平和垂直滚动条的状态由两个实现 Adjustable 接口的 ScrollPaneAdjustable 对象描述(每个对象对应各自的尺寸)。API 提供了访问这些对象的方法,以便能够对 Adjustable 对象的属性(如 unitIncrement 和 value 等)进行操作。

某些可调整属性(minimum、maximum、blockIncrement 和 visibleAmount)是由滚动窗格根据自身的几何形状及其子组件在内部进行设置的,不应由使用滚动窗格的程序设置。

如果滚动条显示策略被定义为 "never",那么滚动窗格可以使用 setScrollPosition() 方法按程序滚动,并且滚动窗格将适当移动和裁剪子组件的内容。如果程序需要创建和管理自己的可调整控件,那么这个策略很有用。

滚动条的放置由程序之外的用户通过特定于平台的属性集控制。

此容器的初始大小被设置为 100x100,可以使用 setSize() 重新设置它。

默认情况下,使用配有滚轮的鼠标上的滚轮进行滚动。可以使用 setWheelScrollingEnabled 禁用此功能。通过设置水平和垂直 Adjustable 的块增量和单位增量,可以自定义滚轮滚动。有关如何指派鼠标滚轮事件的信息,请参阅 MouseWheelEvent 的类描述。

Insets 用于定义滚动条使用的所有空间和滚动窗格创建的所有边框,可以使用 getInsets() 获取当前 insets 的值。如果 scrollbarsAlwaysVisible 值为 false,则 insets 的值将根据滚动条当前是否可见而发生更改。

另请参见:
序列化表格

嵌套类摘要
protected  class ScrollPane.AccessibleAWTScrollPane
          此类实现 ScrollPane 类的可访问性支持。
 
从类 java.awt.Container 继承的嵌套类/接口
Container.AccessibleAWTContainer
 
从类 java.awt.Component 继承的嵌套类/接口
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
字段摘要
static int SCROLLBARS_ALWAYS
          指定无论滚动窗格和子组件各自大小如何,总是显示水平/垂直滚动条。
static int SCROLLBARS_AS_NEEDED
          指定只在子组件的大小超过了滚动窗格水平/垂直尺寸时显示水平/垂直滚动条。
static int SCROLLBARS_NEVER
          指定无论滚动窗格和子组件各自大小如何,永不显示水平/垂直滚动条。
 
从类 java.awt.Component 继承的字段
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
从接口 java.awt.image.ImageObserver 继承的字段
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
构造方法摘要
ScrollPane()
          创建一个具有滚动条策略 "as needed" 的新滚动窗格容器。
ScrollPane(int scrollbarDisplayPolicy)
          创建新的滚动窗格容器。
 
方法摘要
protected  void addImpl(Component comp, Object constraints, int index)
          将指定的组件添加到此滚动窗格容器。
 void addNotify()
          创建滚动窗格的同位体。
 void doLayout()
          通过将子组件的大小调整为其首选大小来布置此容器。
protected  boolean eventTypeEnabled(int type)
          如果启用滚轮滚动,则对 MouseWheelEvents 返回 true
 AccessibleContext 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 version 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, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusBackward, 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, getPeer, 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, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusUpCycle
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

字段详细信息

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
创建一个具有滚动条策略 "as needed" 的新滚动窗格容器。

抛出:
HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true
另请参见:
GraphicsEnvironment.isHeadless()

ScrollPane

public ScrollPane(int scrollbarDisplayPolicy)
           throws HeadlessException
创建新的滚动窗格容器。

参数:
scrollbarDisplayPolicy - 显示滚动条时使用的策略
抛出:
IllegalArgumentException - 如果指定的滚动条显示策略无效
HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true
另请参见:
GraphicsEnvironment.isHeadless()
方法详细信息

addImpl

protected final void addImpl(Component comp,
                             Object constraints,
                             int index)
将指定的组件添加到此滚动窗格容器。如果滚动窗格有一个现有子组件,则移除该组件,并添加新的组件。

覆盖:
Container 中的 addImpl
参数:
comp - 要添加的组件
constraints - 不适用
index - 子组件的位置(必须 <= 0)
另请参见:
Container.add(Component), Container.add(Component, int), Container.add(Component, java.lang.Object), 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 =(子组件 width - 视口 width),height =(子组件 height - 视口 height)。这是与表示滚动条状态的 Adjustable 对象进行连接的一个便捷方法。

参数:
x - 要滚动到的 x 位置
y - 要滚动到的 y 位置
抛出:
NullPointerException - 如果滚动窗格未包含子组件

setScrollPosition

public void setScrollPosition(Point p)
滚动到子组件中的指定位置。只在滚动窗格包含一个子组件,且指定位置在子组件的合法滚动边界内时,调用此方法才有效。指定一个子组件合法滚动边界之外的位置将会滚动到最近的合法位置。定义的合法边界是矩形:x = 0、y = 0、width =(子组件 width - 视口 width),height =(子组件 height - 视口 height)。这是与表示滚动条状态的 Adjustable 对象进行连接的一个便捷方法。

参数:
p - 表示滚动到的位置的 Point

getScrollPosition

public Point getScrollPosition()
返回子组件中的当前 x,y 位置,子组件显示在滚动窗格视口的 0,0 位置。这是与表示滚动条状态的可调整对象进行连接的一个便捷方法。

返回:
当前滚动位置的坐标位置
抛出:
NullPointerException - 如果滚动窗格未包含子组件

setLayout

public final void setLayout(LayoutManager mgr)
设置此容器的布局管理器。重写此方法可以防止设置布局管理器。

覆盖:
Container 中的 setLayout
参数:
mgr - 指定的布局管理器
另请参见:
Container.doLayout(), Container.getLayout()

doLayout

public void doLayout()
通过将子组件的大小调整为其首选大小来布置此容器。如果子组件的新首选大小使当前滚动位置无效,则将滚动位置设置为最接近的有效位置。

覆盖:
Container 中的 doLayout
另请参见:
Component.validate()

layout

@Deprecated
public void layout()
已过时。  从 JDK version 1.1 开始,由 doLayout() 取代。

覆盖:
Container 中的 layout

printComponents

public void printComponents(Graphics g)
显示此滚动窗格中的组件。

覆盖:
Container 中的 printComponents
参数:
g - 指定的 Graphics 窗口
另请参见:
Component.print(java.awt.Graphics), Component.printAll(java.awt.Graphics)

addNotify

public void addNotify()
创建滚动窗格的同位体。

覆盖:
Container 中的 addNotify
另请参见:
Component.isDisplayable(), Container.removeNotify()

paramString

public String paramString()
返回表示此 ScrollPane 的状态的字符串。此方法仅用于调试目的,对于各个实现,所返回字符串的内容和格式可能有所不同。返回的字符串可能为空,但不可能为 null

覆盖:
Container 中的 paramString
返回:
此滚动窗格的参数字符串

processMouseWheelEvent

protected void processMouseWheelEvent(MouseWheelEvent e)
处理通过滚动适当量而传递给此 ScrollPane 的鼠标滚轮事件。

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

覆盖:
Component 中的 processMouseWheelEvent
参数:
e - 鼠标滚轮事件
从以下版本开始:
1.4
另请参见:
MouseWheelEvent,