java.lang.Object java.awt.Component java.awt.Container java.awt.ScrollPane
public class ScrollPane
实现用于单个子组件的自动水平和/或垂直滚动的容器类。滚动条的显示策略可以设置如下:
水平和垂直滚动条的状态由两个实现 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.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
字段详细信息 |
---|
public static final int SCROLLBARS_AS_NEEDED
public static final int SCROLLBARS_ALWAYS
public static final int SCROLLBARS_NEVER
构造方法详细信息 |
---|
public ScrollPane() throws HeadlessException
HeadlessException
- 如果 GraphicsEnvironment.isHeadless() 返回 true
GraphicsEnvironment.isHeadless()
public ScrollPane(int scrollbarDisplayPolicy) throws HeadlessException
scrollbarDisplayPolicy
- 显示滚动条时使用的策略
IllegalArgumentException
- 如果指定的滚动条显示策略无效
HeadlessException
- 如果 GraphicsEnvironment.isHeadless() 返回 true
GraphicsEnvironment.isHeadless()
方法详细信息 |
---|
protected final void addImpl(Component comp, Object constraints, int index)
comp
- 要添加的组件
constraints
- 不适用
index
- 子组件的位置(必须 <= 0)
Container.add(Component)
,
Container.add(Component, int)
,
Container.add(Component, java.lang.Object)
,
LayoutManager
,
LayoutManager2
public int getScrollbarDisplayPolicy()
public Dimension getViewportSize()
public int getHScrollbarHeight()
public int getVScrollbarWidth()
public Adjustable getVAdjustable()
ScrollPaneAdjustable
对象。为了维护向后兼容性,所声明的此方法的返回类型是
Adjustable
。
ScrollPaneAdjustable
public Adjustable getHAdjustable()
ScrollPaneAdjustable
对象。为了维护向后兼容性,所声明的此方法的返回类型是
Adjustable
。
ScrollPaneAdjustable
public void setScrollPosition(int x, int y)
x
- 要滚动到的 x 位置
y
- 要滚动到的 y 位置
NullPointerException
- 如果滚动窗格未包含子组件
public void setScrollPosition(Point p)
p
- 表示滚动到的位置的 Point
public Point getScrollPosition()
NullPointerException
- 如果滚动窗格未包含子组件
public final void setLayout(LayoutManager mgr)
mgr
- 指定的布局管理器
Container.doLayout()
,
Container.getLayout()
public void doLayout()
Component.validate()
@Deprecated public void layout()
public void printComponents(Graphics g)
Container
中的
printComponents
g
- 指定的 Graphics 窗口
Component.print(java.awt.Graphics)
,
Component.printAll(java.awt.Graphics)
public void addNotify()
public String paramString()
ScrollPane
的状态的字符串。此方法仅用于调试目的,对于各个实现,所返回字符串的内容和格式可能有所不同。返回的字符串可能为空,但不可能为
null
。
Container
中的
paramString
protected void processMouseWheelEvent(MouseWheelEvent e)
ScrollPane
的鼠标滚轮事件。
注意,如果事件参数为 null
,则未指定行为并且可能导致异常。
Component
中的
processMouseWheelEvent
e
- 鼠标滚轮事件
MouseWheelEvent
,