The JScrollPane Class
We used JScrollPane
earlier in this chapter without explaining much about it. In this section,
we’ll remedy the situation.
A JScrollPane is a container that
can hold one component. Said another way, a JScrollPanewraps another
component. By default, if the wrapped component is larger than the
JScrollPane itself, the JScrollPane supplies scrollbars. JScrollPane handles the events from the
scrollbars and displays the appropriate portion of the contained
component.
Technically, JScrollPane is a
Container, but it’s a funny one. It has
its own layout manager, which can’t be changed, and it accommodates only
one component at a time. This isn’t really a limitation. If you want to
put a lot of stuff in a JScrollPane,
just collect your components in a JPanel, with whatever layout manager you like,
and put that panel into the JScrollPane.
When you create a JScrollPane,
you specify the conditions under which its scrollbars are displayed. This
is called the scrollbar display policy; a separate
policy is used for the horizontal and vertical scrollbars. The following
constants can be used to specify the policy for each of the
scrollbars:
HORIZONTAL_SCROLLBAR_AS_NEEDEDVERTICAL_SCROLLBAR_AS_NEEDEDDisplays a scrollbar only if the wrapped component doesn’t fit.
HORIZONTAL_SCROLLBAR_ALWAYSVERTICAL_SCROLLBAR_ALWAYSAlways shows a scrollbar, regardless of the contained component’s size.
HORIZONTAL_SCROLLBAR_NEVERVERTICAL_SCROLLBAR_NEVERNever shows a scrollbar, even if the contained component ...