| java.lang.Object | ||||
| ↳ | java.awt.Component | |||
| ↳ | java.awt.Container | |||
| ↳ | javax.swing.JComponent | |||
| ↳ | javax.swing.JScrollPane | |||
Provides a scrollable view of a lightweight component.
 A JScrollPane manages a viewport, optional
 vertical and horizontal scroll bars, and optional row and
 column heading viewports.
 You can find task-oriented documentation of JScrollPane in
  How to Use Scroll Panes,
 a section in The Java Tutorial.  Note that
 JScrollPane does not support heavyweight components.
 
| 
 | 
JViewport provides a window,
 or "viewport" onto a data
 source -- for example, a text file. That data source is the
 "scrollable client" (aka data model) displayed by the
 JViewport view.
 A JScrollPane basically consists of JScrollBars,
 a JViewport, and the wiring between them,
 as shown in the diagram at right.
 
 In addition to the scroll bars and viewport,
 a JScrollPane can have a
 column header and a row header. Each of these is a
 JViewport object that
 you specify with setRowHeaderView,
 and setColumnHeaderView.
 The column header viewport automatically scrolls left and right, tracking
 the left-right scrolling of the main viewport.
 (It never scrolls vertically, however.)
 The row header acts in a similar fashion.
 
Where two scroll bars meet, the row header meets the column header, or a scroll bar meets one of the headers, both components stop short of the corner, leaving a rectangular space which is, by default, empty. These spaces can potentially exist in any number of the four corners. In the previous diagram, the top right space is present and identified by the label "corner component".
 Any number of these empty spaces can be replaced by using the
 setCorner method to add a component to a particular corner.
 (Note: The same component cannot be added to multiple corners.)
 This is useful if there's
 some extra decoration or function you'd like to add to the scroll pane.
 The size of each corner component is entirely determined by the size of the
 headers and/or scroll bars that surround it.
 
 A corner component will only be visible if there is an empty space in that
 corner for it to exist in. For example, consider a component set into the
 top right corner of a scroll pane with a column header. If the scroll pane's
 vertical scrollbar is not present, perhaps because the view component hasn't
 grown large enough to require it, then the corner component will not be
 shown (since there is no empty space in that corner created by the meeting
 of the header and vertical scroll bar). Forcing the scroll bar to always be
 shown, using
 setVerticalScrollBarPolicy(VERTICAL_SCROLLBAR_ALWAYS),
 will ensure that the space for the corner component always exists.
 
 To add a border around the main viewport,
 you can use setViewportBorder.
 (Of course, you can also add a border around the whole scroll pane using
 setBorder.)
 
 A common operation to want to do is to set the background color that will
 be used if the main viewport view is smaller than the viewport, or is
 not opaque. This can be accomplished by setting the background color
 of the viewport, via scrollPane.getViewport().setBackground().
 The reason for setting the color of the viewport and not the scrollpane
 is that by default JViewport is opaque
 which, among other things, means it will completely fill
 in its background using its background color.  Therefore when
 JScrollPane draws its background the viewport will
 usually draw over it.
 
 By default JScrollPane uses ScrollPaneLayout
 to handle the layout of its child Components. ScrollPaneLayout
 determines the size to make the viewport view in one of two ways:
 
Scrollable
       a combination of getPreferredScrollableViewportSize,
       getScrollableTracksViewportWidth and
       getScrollableTracksViewportHeightis used, otherwise
   getPreferredSize is used.
 Warning: Swing is not thread safe. For more information see Swing's Threading Policy.
 Warning:
 Serialized objects of this class will not be compatible with
 future Swing releases. The current serialization support is
 appropriate for short term storage or RMI between applications running
 the same version of Swing.  As of 1.4, support for long term storage
 of all JavaBeansTM
 has been added to the java.beans package.
 Please see XMLEncoder.
| Nested Classes | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| JScrollPane.AccessibleJScrollPane | This class implements accessibility support for the JScrollPaneclass. | ||||||||||
| JScrollPane.ScrollBar | By default JScrollPanecreates scrollbars
 that are instances
 of this class. | ||||||||||
| [Expand] Inherited Constants | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|  From class
javax.swing.JComponent | |||||||||||
|  From class
java.awt.Component | |||||||||||
|  From interface
java.awt.image.ImageObserver | |||||||||||
|  From interface
javax.swing.ScrollPaneConstants | |||||||||||
| Fields | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| columnHeader | The column header child. | ||||||||||
| horizontalScrollBar | The scrollpane's horizontal scrollbar child. | ||||||||||
| horizontalScrollBarPolicy | The display policy for the horizontal scrollbar. | ||||||||||
| lowerLeft | The component to display in the lower left corner. | ||||||||||
| lowerRight | The component to display in the lower right corner. | ||||||||||
| rowHeader | The row header child. | ||||||||||
| upperLeft | The component to display in the upper left corner. | ||||||||||
| upperRight | The component to display in the upper right corner. | ||||||||||
| verticalScrollBar | The scrollpane's vertical scrollbar child. | ||||||||||
| verticalScrollBarPolicy | The display policy for the vertical scrollbar. | ||||||||||
| viewport | The scrollpane's viewport child. | ||||||||||
| [Expand] Inherited Fields | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|  From class
javax.swing.JComponent | |||||||||||
| Public Constructors | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Creates a  JScrollPanethat displays the view
 component in a viewport
 whose view position can be controlled with a pair of scrollbars. | |||||||||||
| Creates a  JScrollPanethat displays the
 contents of the specified
 component, where both horizontal and vertical scrollbars appear
 whenever the component's contents are larger than the view. | |||||||||||
| Creates an empty (no viewport view)  JScrollPanewith specified
 scrollbar policies. | |||||||||||
| Creates an empty (no viewport view)  JScrollPanewhere both horizontal and vertical scrollbars appear when needed. | |||||||||||
| Public Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Returns a  JScrollPane.ScrollBarby default. | |||||||||||
| Returns a  JScrollPane.ScrollBarby default. | |||||||||||
| Gets the AccessibleContext associated with this JScrollPane. | |||||||||||
| Returns the column header. | |||||||||||
| Returns the component at the specified corner. | |||||||||||
| Returns the horizontal scroll bar that controls the viewport's
 horizontal view position. | |||||||||||
| Returns the horizontal scroll bar policy value. | |||||||||||
| Returns the row header. | |||||||||||
| Returns the look and feel (L&F) object that renders this component. | |||||||||||
| Returns the suffix used to construct the name of the L&F class used to
 render this component. | |||||||||||
| Returns the vertical scroll bar that controls the viewports
 vertical view position. | |||||||||||
| Returns the vertical scroll bar policy value. | |||||||||||
| Returns the current  JViewport. | |||||||||||
| Returns the  Borderobject that surrounds the viewport. | |||||||||||
| Returns the bounds of the viewport's border. | |||||||||||
| Overridden to return true so that any calls to  revalidateon any descendants of thisJScrollPanewill cause the
 entire tree beginning with thisJScrollPaneto be
 validated. | |||||||||||
| Indicates whether or not scrolling will take place in response to the
 mouse wheel. | |||||||||||
| Removes the old columnHeader, if it exists; if the new columnHeader
 isn't  null, syncs the x coordinate of its viewPosition
 with the viewport (if there is one) and then adds it to the scroll pane. | |||||||||||
| Creates a column-header viewport if necessary, sets
 its view, and then adds the column-header viewport
 to the scrollpane. | |||||||||||
| Sets the orientation for the vertical and horizontal
 scrollbars as determined by the
  ComponentOrientationargument. | |||||||||||
| Adds a child that will appear in one of the scroll panes
 corners, if there's room. | |||||||||||
| Adds the scrollbar that controls the viewport's horizontal view
 position to the scrollpane. | |||||||||||
| Determines when the horizontal scrollbar appears in the scrollpane. | |||||||||||
| Sets the layout manager for this  JScrollPane. | |||||||||||
| Removes the old rowHeader, if it exists; if the new rowHeader
 isn't  null, syncs the y coordinate of its
 viewPosition with
 the viewport (if there is one) and then adds it to the scroll pane. | |||||||||||
| Creates a row-header viewport if necessary, sets
 its view and then adds the row-header viewport
 to the scrollpane. | |||||||||||
| Sets the  ScrollPaneUIobject that provides the
 look and feel (L&F) for this component. | |||||||||||
| Adds the scrollbar that controls the viewports vertical view position
 to the scrollpane. | |||||||||||
| Determines when the vertical scrollbar appears in the scrollpane. | |||||||||||
| Removes the old viewport (if there is one); forces the
 viewPosition of the new viewport to be in the +x,+y quadrant;
 syncs up the row and column headers (if there are any) with the
 new viewport; and finally syncs the scrollbars and
 headers with the new viewport. | |||||||||||
| Adds a border around the viewport. | |||||||||||
| Creates a viewport if necessary and then sets its view. | |||||||||||
| Enables/disables scrolling in response to movement of the mouse wheel. | |||||||||||
| Replaces the current  ScrollPaneUIobject with a version
 from the current default look and feel. | |||||||||||
| Protected Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Returns a new  JViewportby default. | |||||||||||
| Returns a string representation of this  JScrollPane. | |||||||||||
| [Expand] Inherited Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|  From class
  javax.swing.JComponent | |||||||||||
|  From class
  java.awt.Container | |||||||||||
|  From class
  java.awt.Component | |||||||||||
|  From class
  java.lang.Object | |||||||||||
|  From interface
  java.awt.MenuContainer | |||||||||||
|  From interface
  java.awt.image.ImageObserver | |||||||||||
|  From interface
  javax.accessibility.Accessible | |||||||||||
The scrollpane's horizontal scrollbar child.
 Default is a JScrollBar.
The display policy for the horizontal scrollbar.
 The default is
 ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED.
The component to display in the lower left corner.
 Default is null.
The component to display in the lower right corner.
 Default is null.
The component to display in the upper left corner.
 Default is null.
The component to display in the upper right corner.
 Default is null.
The scrollpane's vertical scrollbar child.
 Default is a JScrollBar.
The display policy for the vertical scrollbar.
 The default is
 ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED.
The scrollpane's viewport child.  Default is an empty
 JViewport.
Creates a JScrollPane that displays the view
 component in a viewport
 whose view position can be controlled with a pair of scrollbars.
 The scrollbar policies specify when the scrollbars are displayed,
 For example, if vsbPolicy is
 VERTICAL_SCROLLBAR_AS_NEEDED
 then the vertical scrollbar only appears if the view doesn't fit
 vertically. The available policy settings are listed at
 setVerticalScrollBarPolicy(int) and
 setHorizontalScrollBarPolicy(int).
| view | the component to display in the scrollpanes viewport | 
|---|---|
| vsbPolicy | an integer that specifies the vertical scrollbar policy | 
| hsbPolicy | an integer that specifies the horizontal scrollbar policy | 
Creates a JScrollPane that displays the
 contents of the specified
 component, where both horizontal and vertical scrollbars appear
 whenever the component's contents are larger than the view.
| view | the component to display in the scrollpane's viewport | 
|---|
Creates an empty (no viewport view) JScrollPane
 with specified
 scrollbar policies. The available policy settings are listed at
 setVerticalScrollBarPolicy(int) and
 setHorizontalScrollBarPolicy(int).
| vsbPolicy | an integer that specifies the vertical scrollbar policy | 
|---|---|
| hsbPolicy | an integer that specifies the horizontal scrollbar policy | 
Creates an empty (no viewport view) JScrollPane
 where both horizontal and vertical scrollbars appear when needed.
Returns a JScrollPane.ScrollBar by default.
 Subclasses may override this method to force ScrollPaneUI
 implementations to use a JScrollBar subclass.
 Used by ScrollPaneUI implementations to
 create the horizontal scrollbar.
JScrollBar with a horizontal orientationReturns a JScrollPane.ScrollBar by default.  Subclasses
 may override this method to force ScrollPaneUI
 implementations to use a JScrollBar subclass.
 Used by ScrollPaneUI implementations to create the
 vertical scrollbar.
JScrollBar with a vertical orientationGets the AccessibleContext associated with this JScrollPane. For scroll panes, the AccessibleContext takes the form of an AccessibleJScrollPane. A new AccessibleJScrollPane instance is created if necessary.
Returns the component at the specified corner. The
 key value specifying the corner is one of:
 
| key | one of the values as shown above | 
|---|
null)
         identified by the given key, or null
         if the key is invalidReturns the horizontal scroll bar that controls the viewport's horizontal view position.
horizontalScrollBar propertyReturns the horizontal scroll bar policy value.
horizontalScrollBarPolicy propertyReturns the look and feel (L&F) object that renders this component.
ScrollPaneUI object that renders this
                          componentReturns the suffix used to construct the name of the L&F class used to render this component.
Returns the vertical scroll bar that controls the viewports vertical view position.
verticalScrollBar propertyReturns the vertical scroll bar policy value.
verticalScrollBarPolicy propertyReturns the Border object that surrounds the viewport.
viewportBorder propertyReturns the bounds of the viewport's border.
Rectangle object specifying the viewport border
Overridden to return true so that any calls to revalidate
 on any descendants of this JScrollPane will cause the
 entire tree beginning with this JScrollPane to be
 validated.
Indicates whether or not scrolling will take place in response to the mouse wheel. Wheel scrolling is enabled by default.
Removes the old columnHeader, if it exists; if the new columnHeader
 isn't null, syncs the x coordinate of its viewPosition
 with the viewport (if there is one) and then adds it to the scroll pane.
 
 Most applications will find it more convenient to use
 setColumnHeaderView
 to add a column header component and its viewport to the scroll pane.
Creates a column-header viewport if necessary, sets its view, and then adds the column-header viewport to the scrollpane. For example:
JScrollPane scrollpane = new JScrollPane(); scrollpane.setViewportView(myBigComponentToScroll); scrollpane.setColumnHeaderView(myBigComponentsColumnHeader);
| view | the component to display as the column header | 
|---|
Sets the orientation for the vertical and horizontal
 scrollbars as determined by the
 ComponentOrientation argument.
| co | one of the following values: 
 | 
|---|
Adds a child that will appear in one of the scroll panes corners, if there's room. For example with both scrollbars showing (on the right and bottom edges of the scrollpane) the lower left corner component will be shown in the space between ends of the two scrollbars. Legal values for the key are:
 Although "corner" doesn't match any beans property
 signature, PropertyChange events are generated with the
 property name set to the corner key.
| key | identifies which corner the component will appear in | 
|---|---|
| corner | one of the following components: 
 | 
| IllegalArgumentException | if corner key is invalid | 
|---|
Adds the scrollbar that controls the viewport's horizontal view
 position to the scrollpane.
 This is usually unnecessary, as JScrollPane creates
 horizontal and vertical scrollbars by default.
| horizontalScrollBar | the horizontal scrollbar to be added | 
|---|
Determines when the horizontal scrollbar appears in the scrollpane. The options are:
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED
 ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER
 ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS
 | policy | one of the three values listed above | 
|---|
| IllegalArgumentException | if policyis not one of the legal values shown above | 
|---|
Sets the layout manager for this JScrollPane.
 This method overrides setLayout in
 java.awt.Container to ensure that only
 LayoutManagers which
 are subclasses of ScrollPaneLayout can be used in a
 JScrollPane. If layout is non-null, this
 will invoke syncWithScrollPane on it.
| layout | the specified layout manager | 
|---|
| ClassCastException | if layout is not a ScrollPaneLayout | 
|---|
Removes the old rowHeader, if it exists; if the new rowHeader
 isn't null, syncs the y coordinate of its
 viewPosition with
 the viewport (if there is one) and then adds it to the scroll pane.
 
 Most applications will find it more convenient to use
 setRowHeaderView
 to add a row header component and its viewport to the scroll pane.
| rowHeader | the new row header to be used; if nullthe old row header is still removed and the new rowHeader
          is set tonull | 
|---|
Creates a row-header viewport if necessary, sets its view and then adds the row-header viewport to the scrollpane. For example:
JScrollPane scrollpane = new JScrollPane(); scrollpane.setViewportView(myBigComponentToScroll); scrollpane.setRowHeaderView(myBigComponentsRowHeader);
| view | the component to display as the row header | 
|---|
Sets the ScrollPaneUI object that provides the
 look and feel (L&F) for this component.
| ui | the ScrollPaneUIL&F object | 
|---|
Adds the scrollbar that controls the viewports vertical view position
 to the scrollpane.  This is usually unnecessary,
 as JScrollPane creates vertical and
 horizontal scrollbars by default.
| verticalScrollBar | the new vertical scrollbar to be added | 
|---|
Determines when the vertical scrollbar appears in the scrollpane. Legal values are:
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED
 ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER
 ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS
 | policy | one of the three values listed above | 
|---|
| IllegalArgumentException | if policyis not one of the legal values shown above | 
|---|
Removes the old viewport (if there is one); forces the viewPosition of the new viewport to be in the +x,+y quadrant; syncs up the row and column headers (if there are any) with the new viewport; and finally syncs the scrollbars and headers with the new viewport.
 Most applications will find it more convenient to use
 setViewportView
 to add a viewport and a view to the scrollpane.
| viewport | the new viewport to be used; if viewport is null, the old viewport is still removed
          and the new viewport is set tonull | 
|---|
Adds a border around the viewport.  Note that the border isn't
 set on the viewport directly, JViewport doesn't support
 the JComponent border property.
 Similarly setting the JScrollPanes
 viewport doesn't affect the viewportBorder property.
 
The default value of this property is computed by the look and feel implementation.
| viewportBorder | the border to be added | 
|---|
Creates a viewport if necessary and then sets its view.  Applications
 that don't provide the view directly to the JScrollPane
 constructor
 should use this method to specify the scrollable child that's going
 to be displayed in the scrollpane. For example:
 
JScrollPane scrollpane = new JScrollPane(); scrollpane.setViewportView(myBigComponentToScroll);Applications should not add children directly to the scrollpane.
| view | the component to add to the viewport | 
|---|
Enables/disables scrolling in response to movement of the mouse wheel. Wheel scrolling is enabled by default.
| handleWheel | trueif scrolling should be done
                      automatically for a MouseWheelEvent,falseotherwise. | 
|---|
Replaces the current ScrollPaneUI object with a version
 from the current default look and feel.
 To be called when the default look and feel changes.
Returns a new JViewport by default.
 Used to create the
 viewport (as needed) in setViewportView,
 setRowHeaderView, and setColumnHeaderView.
 Subclasses may override this method to return a subclass of
 JViewport.
JViewport
Returns a string representation of this JScrollPane.
 This method
 is intended to be used only for debugging purposes, and the
 content and format of the returned string may vary between
 implementations. The returned string may be empty but may not
 be null.
JScrollPane.