JavaTM 2 Platform
Standard Ed. 6

java.awt
類別 ScrollPane

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, 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 - 如果為 MouseWheelEvent 自動完成滾動,則返回 true;否則返回 false
從以下版本開始:
1.4
另請參見:
isWheelScrollingEnabled(), MouseWheelEvent, MouseWheelListener

isWheelScrollingEnabled

public boolean isWheelScrollingEnabled()
指示是否進行滾動來回應鼠標滾輪。預設情況下啟用滾輪滾動。

從以下版本開始:
1.4
另請參見:
setWheelScrollingEnabled(boolean)

getAccessibleContext

public AccessibleContext getAccessibleContext()
獲取與此 ScrollPane 相關的 AccessibleContext。對於滾動窗格,AccessibleContext 採用的是 AccessibleAWTScrollPane 的形式。如有必要,將創建一個新的 AccessibleAWTScrollPane 實例。

指定者:
介面 Accessible 中的 getAccessibleContext
覆寫:
類別 Component 中的 getAccessibleContext
返回:
充當此 ScrollPane 的 AccessibleContext 的 AccessibleAWTScrollPane
從以下版本開始:
1.3

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only