    All Packages  Class Hierarchy  This Package  Previous  Next  Index

# Class java.awt.ScrollPane

    java.lang.Object
       |
       +----java.awt.Component
               |
               +----java.awt.Container
                       |
                       +----java.awt.ScrollPane

public class ScrollPane
extends Container

A container class which implements automatic horizontal and/or vertical scrolling for a single child component. The display policy for the scrollbars can be set to:

1. as needed: scrollbars created and shown only when needed by scrollpane
2. always: scrollbars created and always shown by the scrollpane
3. never: scrollbars never created or shown by the scrollpane

The state of the horizontal and vertical scrollbars is represented by two objects (one for each dimension) which implement the Adjustable interface. The API provides methods to access those objects such that the attributes on the Adjustable object (such as unitIncrement, value, etc.) can be manipulated.

Certain adjustable properties (minimum, maximum, blockIncrement, and visibleAmount) are set internally by the scrollpane in accordance with the geometry of the scrollpane and its child and these should not be set by programs using the scrollpane.

If the scrollbar display policy is defined as "never", then the scrollpane can still be programmatically scrolled using the setScrollPosition() method and the scrollpane will move and clip the child's contents appropriately. This policy is useful if the program needs to create and manage its own adjustable controls.

The placement of the scrollbars is controlled by platform-specific properties set by the user outside of the program.

The initial size of this container is set to 100x100, but can be reset using setSize().

Insets are used to define any space used by scrollbars and any borders created by the scroll pane. getInsets() can be used to get the current value for the insets. If the value of scrollbarsAlwaysVisible is false, then the value of the insets will change dynamically depending on whether the scrollbars are currently visible or not.

##

SCROLLBARS_ALWAYS
  Specifies that horizontal/vertical scrollbars should always be shown regardless of the respective sizes of the scrollpane and child.
SCROLLBARS_AS_NEEDED
  Specifies that horizontal/vertical scrollbar should be shown only when the size of the child exceeds the size of the scrollpane in the horizontal/vertical dimension.
SCROLLBARS_NEVER
  Specifies that horizontal/vertical scrollbars should never be shown regardless of the respective sizes of the scrollpane and child.

##

ScrollPane()
  Create a new scrollpane container with a scrollbar display policy of "as needed".
ScrollPane(int)
  Create a new scrollpane container.

##

addImpl(Component, Object, int)
  Adds the specified component to this scroll pane container.
addNotify()
  Creates the scroll pane's peer.
doLayout()
  Lays out this container by resizing its child to its preferred size.
getHAdjustable()
  Returns the Adjustable object which represents the state of the horizontal scrollbar.
getHScrollbarHeight()
  Returns the height that would be occupied by a horizontal scrollbar, which is independent of whether it is currently displayed by the scroll pane or not.
getScrollbarDisplayPolicy()
  Returns the display policy for the scrollbars.
getScrollPosition()
  Returns the current x,y position within the child which is displayed at the 0,0 location of the scrolled panel's view port.
getVAdjustable()
  Returns the Adjustable object which represents the state of the vertical scrollbar.
getViewportSize()
  Returns the current size of the scroll pane's view port.
getVScrollbarWidth()
  Returns the width that would be occupied by a vertical scrollbar, which is independent of whether it is currently displayed by the scroll pane or not.
layout()
  Deprecated.
paramString()
  Returns the parameter string representing the state of this container.
printComponents(Graphics)
  Prints the component in this scroll pane.
setLayout(LayoutManager)
  Sets the layout manager for this container.
setScrollPosition(int, int)
  Scrolls to the specified position within the child component.
setScrollPosition(Point)
  Scrolls to the specified position within the child component.

##

SCROLLBARS_AS_NEEDED

     public static final int SCROLLBARS_AS_NEEDED

  Specifies that horizontal/vertical scrollbar should be shown only when the size of the child exceeds the size of the scrollpane in the horizontal/vertical dimension.

SCROLLBARS_ALWAYS

     public static final int SCROLLBARS_ALWAYS

  Specifies that horizontal/vertical scrollbars should always be shown regardless of the respective sizes of the scrollpane and child.

SCROLLBARS_NEVER

     public static final int SCROLLBARS_NEVER

  Specifies that horizontal/vertical scrollbars should never be shown regardless of the respective sizes of the scrollpane and child.

##

ScrollPane

     public ScrollPane()

  Create a new scrollpane container with a scrollbar display policy of "as needed".

ScrollPane

     public ScrollPane(int scrollbarDisplayPolicy)

  Create a new scrollpane container.

  Parameters:
    scrollbarDisplayPolicy - policy for when scrollbars should be shown

##

addImpl

     protected final void addImpl(Component comp,
                                  Object constraints,
                                  int index)

  Adds the specified component to this scroll pane container. If the scroll pane has an existing child component, that component is removed and the new one is added.

  Parameters:
    comp - the component to be added
    constraints - not applicable
    index - position of child component (must be <= 0)
  Overrides:
    addImpl in class Container

getScrollbarDisplayPolicy

     public int getScrollbarDisplayPolicy()

  Returns the display policy for the scrollbars.

  Returns:
    the display policy for the scrollbars

getViewportSize

     public Dimension getViewportSize()

  Returns the current size of the scroll pane's view port.

  Returns:
    the size of the view port in pixels

getHScrollbarHeight

     public int getHScrollbarHeight()

  Returns the height that would be occupied by a horizontal scrollbar, which is independent of whether it is currently displayed by the scroll pane or not.

  Returns:
    the height of a horizontal scrollbar in pixels

getVScrollbarWidth

     public int getVScrollbarWidth()

  Returns the width that would be occupied by a vertical scrollbar, which is independent of whether it is currently displayed by the scroll pane or not.

  Returns:
    the width of a vertical scrollbar in pixels

getVAdjustable

     public Adjustable getVAdjustable()

  Returns the Adjustable object which represents the state of the vertical scrollbar. If the scrollbar display policy is "never", this method returns null.

getHAdjustable

     public Adjustable getHAdjustable()

  Returns the Adjustable object which represents the state of the horizontal scrollbar. If the scrollbar display policy is "never", this method returns null.

setScrollPosition

     public void setScrollPosition(int x,
                                   int y)

  Scrolls to the specified position within the child component. A call to this method is only valid if the scroll pane contains a child. Specifying a position outside of the legal scrolling bounds of the child will scroll to the closest legal position. Legal bounds are defined to be the rectangle: x = 0, y = 0, width = (child width - view port width), height = (child height - view port height). This is a convenience method which interfaces with the Adjustable objects which represent the state of the scrollbars.

  Parameters:
    x - the x position to scroll to
    y - the y position to scroll to
  Throws: IllegalArgumentException
    if specified coordinates are not within the legal scrolling bounds of the child component.

setScrollPosition

     public void setScrollPosition(Point p)

  Scrolls to the specified position within the child component. A call to this method is only valid if the scroll pane contains a child and the specified position is within legal scrolling bounds of the child. Legal bounds are defined to be the rectangle: x = 0, y = 0, width = (child width - view port width), height = (child height - view port height). This is a convenience method which interfaces with the Adjustable objects which represent the state of the scrollbars.

  Parameters:
    p - the Point representing the position to scroll to
  Throws: IllegalArgumentException
    if specified coordinates are not within the legal scrolling bounds of the child component.

getScrollPosition

     public Point getScrollPosition()

  Returns the current x,y position within the child which is displayed at the 0,0 location of the scrolled panel's view port. This is a convenience method which interfaces with the adjustable objects which represent the state of the scrollbars.

  Returns:
    the coordinate position for the current scroll position

setLayout

     public final void setLayout(LayoutManager mgr)

  Sets the layout manager for this container. This method is overridden to prevent the layout mgr from being set.

  Parameters:
    mgr - the specified layout manager
  Overrides:
    setLayout in class Container

doLayout

     public void doLayout()

  Lays out this container by resizing its child to its preferred size. If the new preferred size of the child causes the current scroll position to be invalid, the scroll position is set to the closest valid position.

  Overrides:
    doLayout in class Container
  See Also:
    validate

layout

     public void layout()

  Note: layout() is deprecated. As of JDK version 1.1, replaced by `doLayout()`.

  Overrides:
    layout in class Container

printComponents

     public void printComponents(Graphics g)

  Prints the component in this scroll pane.

  Parameters:
    g - the specified Graphics window
  Overrides:
    printComponents in class Container
  See Also:
    print, printAll

addNotify

     public void addNotify()

  Creates the scroll pane's peer.

  Overrides:
    addNotify in class Container

paramString

     public String paramString()

  Returns the parameter string representing the state of this container.

  Overrides:
    paramString in class Container

    All Packages  Class Hierarchy  This Package  Previous  Next  Index

Submit a bug or feature - Version 1.1.8 of Java Platform API Specification
Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.
Copyright 1995-1999 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.