|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object![]()
![]()
![]()
java.awt.Component
![]()
![]()
![]()
java.awt.Container
![]()
![]()
![]()
javax.swing.JComponent
![]()
![]()
![]()
javax.swing.JScrollPane
, MenuContainer
, Serializable
, Accessible
, ScrollPaneConstants

public class JScrollPane

, Accessible

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.
By default, the corners are empty.
You can put a component into a corner using
setCorner,
in case you there is some function or decoration you
would like to add to the scroll pane. The size of corner components is
entirely determined by the size of the headers and scroll bars that
surround them.
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:
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
.
JScrollBar
,
JViewport
,
ScrollPaneLayout
,
Scrollable
,
Component.getPreferredSize()
,
setViewportView(java.awt.Component)
,
setRowHeaderView(java.awt.Component)
,
setColumnHeaderView(java.awt.Component)
,
setCorner(java.lang.String, java.awt.Component)
,
setViewportBorder(javax.swing.border.Border)
,
Serialized Form| Nested Class Summary | |
|---|---|
protected class |
JScrollPane.AccessibleJScrollPane
This class implements accessibility support for the JScrollPane class. |
protected class |
JScrollPane.ScrollBar
By default JScrollPane creates scrollbars
that are instances
of this class. |
Nested classes/interfaces inherited from class javax.swing.JComponent ![]() |
|---|
JComponent.AccessibleJComponent |
Nested classes/interfaces inherited from class java.awt.Container ![]() |
|---|
Container.AccessibleAWTContainer |
Nested classes/interfaces inherited from class java.awt.Component ![]() |
|---|
Component.AccessibleAWTComponent |
| Field Summary | |
|---|---|
protected JViewport |
columnHeader
The column header child. |
protected JScrollBar |
horizontalScrollBar
The scrollpane's horizontal scrollbar child. |
protected int |
horizontalScrollBarPolicy
The display policy for the horizontal scrollbar. |
protected Component |
lowerLeft
The component to display in the lower left corner. |
protected Component |
lowerRight
The component to display in the lower right corner. |
protected JViewport |
rowHeader
The row header child. |
protected Component |
upperLeft
The component to display in the upper left corner. |
protected Component |
upperRight
The component to display in the upper right corner. |
protected JScrollBar |
verticalScrollBar
The scrollpane's vertical scrollbar child. |
protected int |
verticalScrollBarPolicy
The display policy for the vertical scrollbar. |
protected JViewport |
viewport
The scrollpane's viewport child. |
Fields inherited from class javax.swing.JComponent ![]() |
|---|
accessibleContext |
Fields inherited from class java.awt.Component ![]() |
|---|
BOTTOM_ALIGNMENT |
Fields inherited from interface java.awt.image.ImageObserver ![]() |
|---|
ABORT |
| Constructor Summary | |
|---|---|
JScrollPane
Creates an empty (no viewport view) JScrollPane
where both horizontal and vertical scrollbars appear when needed. |
|
JScrollPane
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. |
|
JScrollPane
Creates a JScrollPane that displays the view
component in a viewport
whose view position can be controlled with a pair of scrollbars. |
|
JScrollPane
Creates an empty (no viewport view) JScrollPane
with specified
scrollbar policies. |
|
| Method Summary | |
|---|---|
JScrollBar |
createHorizontalScrollBar
Returns a JScrollPane.ScrollBar by default. |
JScrollBar |
createVerticalScrollBar
Returns a JScrollPane.ScrollBar by default. |
protected JViewport |
createViewport
Returns a new JViewport by default. |
AccessibleContext |
getAccessibleContext
Gets the AccessibleContext associated with this JScrollPane. |
JViewport |
getColumnHeader
Returns the column header. |
Component |
getCorner
Returns the component at the specified corner. |
JScrollBar |
getHorizontalScrollBar
Returns the horizontal scroll bar that controls the viewport's horizontal view position. |
int |
getHorizontalScrollBarPolicy
Returns the horizontal scroll bar policy value. |
JViewport |
getRowHeader
Returns the row header. |
ScrollPaneUI |
getUI
Returns the look and feel (L&F) object that renders this component. |
String |
getUIClassID
Returns the suffix used to construct the name of the L&F class used to render this component. |
JScrollBar |
getVerticalScrollBar
Returns the vertical scroll bar that controls the viewports vertical view position. |
int |
getVerticalScrollBarPolicy
Returns the vertical scroll bar policy value. |
JViewport |
getViewport
Returns the current JViewport. |
Border |
getViewportBorder
Returns the Border object that surrounds the viewport. |
Rectangle |
getViewportBorderBounds
Returns the bounds of the viewport's border. |
boolean |
isValidateRoot
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. |
boolean |
isWheelScrollingEnabled
Indicates whether or not scrolling will take place in response to the mouse wheel. |
protected String |
paramString
Returns a string representation of this JScrollPane. |
void |
setColumnHeader
Removes the old columnHeader, if it exists. |
void |
setColumnHeaderView
Creates a column-header viewport if necessary, sets its view, and then adds the column-header viewport to the scrollpane. |
void |
setComponentOrientation
Sets the orientation for the vertical and horizontal scrollbars as determined by the ComponentOrientation argument. |
void |
setCorner
Adds a child that will appear in one of the scroll panes corners, if there's room. |
void |
setHorizontalScrollBar
Adds the scrollbar that controls the viewport's horizontal view position to the scrollpane. |
void |
setHorizontalScrollBarPolicy
Determines when the horizontal scrollbar appears in the scrollpane. |
void |
setLayout
Sets the layout manager for this JScrollPane. |
void |
setRowHeader
Removes the old rowHeader, if it exists. |
void |
setRowHeaderView
Creates a row-header viewport if necessary, sets its view and then adds the row-header viewport to the scrollpane. |
void |
setUI
Sets the ScrollPaneUI object that provides the
look and feel (L&F) for this component. |
void |
setVerticalScrollBar
Adds the scrollbar that controls the viewports vertical view position to the scrollpane. |
void |
setVerticalScrollBarPolicy
Determines when the vertical scrollbar appears in the scrollpane. |
void |
setViewport
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. |
void |
setViewportBorder
Adds a border around the viewport. |
void |
setViewportView
Creates a viewport if necessary and then sets its view. |
void |
setWheelScrollingEnabled
Enables/disables scrolling in response to movement of the mouse wheel. |
void |
updateUI
Replaces the current ScrollPaneUI object with a version
from the current default look and feel. |
Methods inherited from class java.lang.Object ![]() |
|---|
clone |
| Field Detail |
|---|

protected int verticalScrollBarPolicy
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED.
setVerticalScrollBarPolicy(int)


protected int horizontalScrollBarPolicy
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED.
setHorizontalScrollBarPolicy(int)


protected JViewport![]()
![]()
viewport
JViewport.
setViewport(javax.swing.JViewport)


protected JScrollBar![]()
![]()
verticalScrollBar
JScrollBar.
setVerticalScrollBar(javax.swing.JScrollBar)


protected JScrollBar![]()
![]()
horizontalScrollBar
JScrollBar.
setHorizontalScrollBar(javax.swing.JScrollBar)


protected JViewport![]()
![]()
rowHeader
null.
setRowHeader(javax.swing.JViewport)


protected JViewport![]()
![]()
columnHeader
null.
setColumnHeader(javax.swing.JViewport)


protected Component![]()
![]()
lowerLeft
null.
setCorner(java.lang.String, java.awt.Component)


protected Component![]()
![]()
lowerRight
null.
setCorner(java.lang.String, java.awt.Component)


protected Component![]()
![]()
upperLeft
null.
setCorner(java.lang.String, java.awt.Component)


protected Component![]()
![]()
upperRight
null.
setCorner(java.lang.String, java.awt.Component)

| Constructor Detail |
|---|

public JScrollPane(Component![]()
![]()
view, int vsbPolicy, int hsbPolicy)
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 viewportvsbPolicy - an integer that specifies the vertical
scrollbar policyhsbPolicy - an integer that specifies the horizontal
scrollbar policysetViewportView(java.awt.Component)


public JScrollPane(Component![]()
![]()
view)
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 viewportsetViewportView(java.awt.Component)


public JScrollPane(int vsbPolicy,
int hsbPolicy)
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 policyhsbPolicy - an integer that specifies the horizontal
scrollbar policysetViewportView(java.awt.Component)


public JScrollPane()
JScrollPane
where both horizontal and vertical scrollbars appear when needed.
| Method Detail |
|---|

public ScrollPaneUI![]()
![]()
getUI()
ScrollPaneUI object that renders this
componentsetUI(javax.swing.plaf.ScrollPaneUI)


public void setUI(ScrollPaneUI![]()
![]()
ui)
ScrollPaneUI object that provides the
look and feel (L&F) for this component.
ui - the ScrollPaneUI L&F objectgetUI()


public void updateUI()
ScrollPaneUI object with a version
from the current default look and feel.
To be called when the default look and feel changes.
updateUI

in class JComponent

JComponent.updateUI()
,
UIManager.getUI(javax.swing.JComponent)


public String![]()
![]()
getUIClassID()
getUIClassID

in class JComponent

JComponent.getUIClassID()
,
UIDefaults.getUI(javax.swing.JComponent)


public void setLayout(LayoutManager![]()
![]()
layout)
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.
setLayout

in class Container

layout - the specified layout manager
ClassCastException

- if layout is not a
ScrollPaneLayoutContainer.getLayout()
,
Container.setLayout(java.awt.LayoutManager)


public boolean isValidateRoot()
revalidate
on any descendants of this JScrollPane will cause the
entire tree beginning with this JScrollPane to be
validated.
isValidateRoot

in class JComponent

Container.validate()
,
JComponent.revalidate()
,
JComponent.isValidateRoot()


public int getVerticalScrollBarPolicy()
verticalScrollBarPolicy propertysetVerticalScrollBarPolicy(int)


public void setVerticalScrollBarPolicy(int policy)
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED
ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER
ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS
policy - one of the three values listed above
IllegalArgumentException

- if policy
is not one of the legal values shown abovegetVerticalScrollBarPolicy()


public int getHorizontalScrollBarPolicy()
horizontalScrollBarPolicy propertysetHorizontalScrollBarPolicy(int)


public void setHorizontalScrollBarPolicy(int policy)
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS
policy - one of the three values listed above
IllegalArgumentException

- if policy
is not one of the legal values shown abovegetHorizontalScrollBarPolicy()


public Border![]()
![]()
getViewportBorder()
Border object that surrounds the viewport.
viewportBorder propertysetViewportBorder(javax.swing.border.Border)


public void setViewportBorder(Border![]()
![]()
viewportBorder)
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 addedgetViewportBorder()
,
setViewport(javax.swing.JViewport)


public Rectangle![]()
![]()
getViewportBorderBounds()
Rectangle object specifying the viewport border

public JScrollBar![]()
![]()
createHorizontalScrollBar()
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 orientationJScrollBar


public JScrollBar![]()
![]()
getHorizontalScrollBar()
horizontalScrollBar propertysetHorizontalScrollBar(javax.swing.JScrollBar)


public void setHorizontalScrollBar(JScrollBar![]()
![]()
horizontalScrollBar)
JScrollPane creates
horizontal and vertical scrollbars by default.
horizontalScrollBar - the horizontal scrollbar to be addedcreateHorizontalScrollBar()
,
getHorizontalScrollBar()


public JScrollBar![]()
![]()
createVerticalScrollBar()
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 orientationJScrollBar


public JScrollBar![]()
![]()
getVerticalScrollBar()
verticalScrollBar propertysetVerticalScrollBar(javax.swing.JScrollBar)


public void setVerticalScrollBar(JScrollBar![]()
![]()
verticalScrollBar)
JScrollPane creates vertical and
horizontal scrollbars by default.
verticalScrollBar - the new vertical scrollbar to be addedcreateVerticalScrollBar()
,
getVerticalScrollBar()


protected JViewport![]()
![]()
createViewport()
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

public JViewport![]()
![]()
getViewport()
JViewport.
viewport propertysetViewport(javax.swing.JViewport)


public void setViewport(JViewport![]()
![]()
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 to nullcreateViewport()
,
getViewport()
,
setViewportView(java.awt.Component)


public void setViewportView(Component![]()
![]()
view)
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 viewportsetViewport(javax.swing.JViewport)
,
JViewport.setView(java.awt.Component)


public JViewport![]()
![]()
getRowHeader()
rowHeader propertysetRowHeader(javax.swing.JViewport)


public void setRowHeader(JViewport![]()
![]()
rowHeader)
null, syncs the y coordinate of its
viewPosition with
the viewport (if there is one) and then adds it to the scrollpane.
Most applications will find it more convenient to use
setRowHeaderView
to add a row header component and its viewport to the scrollpane.
rowHeader - the new row header to be used; if null
the old row header is still removed and the new rowHeader
is set to nullgetRowHeader()
,
setRowHeaderView(java.awt.Component)


public void setRowHeaderView(Component![]()
![]()
view)
JScrollPane scrollpane = new JScrollPane(); scrollpane.setViewportView(myBigComponentToScroll); scrollpane.setRowHeaderView(myBigComponentsRowHeader);
view - the component to display as the row headersetRowHeader(javax.swing.JViewport)
,
JViewport.setView(java.awt.Component)


public JViewport![]()
![]()
getColumnHeader()
columnHeader propertysetColumnHeader(javax.swing.JViewport)


public void setColumnHeader(JViewport![]()
![]()
columnHeader)
null, sync the x coordinate of the its viewPosition
with the viewport (if there is one) and then add it to the scrollpane.
Most applications will find it more convenient to use
setRowHeaderView
to add a row header component and its viewport to the scrollpane.
getColumnHeader()
,
setColumnHeaderView(java.awt.Component)


public void setColumnHeaderView(Component![]()
![]()
view)
JScrollPane scrollpane = new JScrollPane(); scrollpane.setViewportView(myBigComponentToScroll); scrollpane.setColumnHeaderView(myBigComponentsColumnHeader);
view - the component to display as the column headersetColumnHeader(javax.swing.JViewport)
,
JViewport.setView(java.awt.Component)


public Component![]()
![]()
getCorner(String
![]()
![]()
key)
key value specifying the corner is one of:
key - one of the values as shown above
null
if key is invalid:
setCorner(java.lang.String, java.awt.Component)


public void setCorner(String![]()
![]()
key, Component
![]()
![]()
corner)
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 incorner - one of the following components:
IllegalArgumentException

- if corner key is invalid

public void setComponentOrientation(ComponentOrientation![]()
![]()
co)
ComponentOrientation argument.
setComponentOrientation

in class Component

co - one of the following values:
ComponentOrientation


public boolean isWheelScrollingEnabled()
setWheelScrollingEnabled(boolean)


public void setWheelScrollingEnabled(boolean handleWheel)
handleWheel - true if scrolling should be done
automatically for a MouseWheelEvent,
false otherwise.isWheelScrollingEnabled()
,
MouseWheelEvent
,
MouseWheelListener


protected String![]()
![]()
paramString()
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.
paramString

in class JComponent

JScrollPane.

public AccessibleContext![]()
![]()
getAccessibleContext()
getAccessibleContext

in interface Accessible

getAccessibleContext

in class JComponent

|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||