public class ScrollPaneLayout extends Object implements LayoutManager, ScrollPaneConstants, Serializable
The layout manager used by JScrollPane
. JScrollPaneLayout
is responsible for nine components: a viewport, two scrollbars, a row header, a column header, and four "corner" components.
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 JavaBeans™ has been added to the java.beans
package. Please see XMLEncoder
.
JScrollPane
, JViewport
Modifier and Type | Class and Description |
---|---|
static class |
ScrollPaneLayout.UIResource The UI resource version of |
protected JViewport viewport
The scrollpane's viewport child. Default is an empty JViewport
.
protected JScrollBar vsb
The scrollpane's vertical scrollbar child. Default is a JScrollBar
.
protected JScrollBar hsb
The scrollpane's horizontal scrollbar child. Default is a JScrollBar
.
protected JViewport rowHead
The row header child. Default is null
.
protected JViewport colHead
The column header child. Default is null
.
protected Component lowerLeft
The component to display in the lower left corner. Default is null
.
protected Component lowerRight
The component to display in the lower right corner. Default is null
.
protected Component upperLeft
The component to display in the upper left corner. Default is null
.
protected Component upperRight
The component to display in the upper right corner. Default is null
.
protected int vsbPolicy
The display policy for the vertical scrollbar. The default is ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED
.
This field is obsolete, please use the JScrollPane
field instead.
protected int hsbPolicy
The display policy for the horizontal scrollbar. The default is ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED
.
This field is obsolete, please use the JScrollPane
field instead.
public ScrollPaneLayout()
public void syncWithScrollPane(JScrollPane sp)
This method is invoked after the ScrollPaneLayout is set as the LayoutManager of a JScrollPane
. It initializes all of the internal fields that are ordinarily set by addLayoutComponent
. For example:
ScrollPaneLayout mySPLayout = new ScrollPanelLayout() { public void layoutContainer(Container p) { super.layoutContainer(p); // do some extra work here ... } }; scrollpane.setLayout(mySPLayout):
protected Component addSingletonComponent(Component oldC, Component newC)
Removes an existing component. When a new component, such as the left corner, or vertical scrollbar, is added, the old one, if it exists, must be removed.
This method returns newC
. If oldC
is not equal to newC
and is non-null
, it will be removed from its parent.
oldC
- the Component
to replacenewC
- the Component
to addnewC
public void addLayoutComponent(String s, Component c)
Adds the specified component to the layout. The layout is identified using one of:
addLayoutComponent
in interface LayoutManager
s
- the component identifierc
- the the component to be addedIllegalArgumentException
- if s
is an invalid keypublic void removeLayoutComponent(Component c)
Removes the specified component from the layout.
removeLayoutComponent
in interface LayoutManager
c
- the component to removepublic int getVerticalScrollBarPolicy()
Returns the vertical scrollbar-display policy.
setVerticalScrollBarPolicy(int)
public void setVerticalScrollBarPolicy(int x)
Sets the vertical scrollbar-display policy. The options are:
JScrollPane
version of this method. It only exists for backwards compatibility with the Swing 1.0.2 (and earlier) versions of this class. x
- an integer giving the display policyIllegalArgumentException
- if x
is an invalid vertical scroll bar policy, as listed abovepublic int getHorizontalScrollBarPolicy()
Returns the horizontal scrollbar-display policy.
setHorizontalScrollBarPolicy(int)
public void setHorizontalScrollBarPolicy(int x)
Sets the horizontal scrollbar-display policy. The options are:
JScrollPane
version of this method. It only exists for backwards compatibility with the Swing 1.0.2 (and earlier) versions of this class. x
- an int giving the display policyIllegalArgumentException
- if x
is not a valid horizontal scrollbar policy, as listed abovepublic JViewport getViewport()
Returns the JViewport
object that displays the scrollable contents.
JViewport
object that displays the scrollable contentsJScrollPane.getViewport()
public JScrollBar getHorizontalScrollBar()
Returns the JScrollBar
object that handles horizontal scrolling.
JScrollBar
object that handles horizontal scrollingJScrollPane.getHorizontalScrollBar()
public JScrollBar getVerticalScrollBar()
Returns the JScrollBar
object that handles vertical scrolling.
JScrollBar
object that handles vertical scrollingJScrollPane.getVerticalScrollBar()
public JViewport getRowHeader()
Returns the JViewport
object that is the row header.
JViewport
object that is the row headerJScrollPane.getRowHeader()
public JViewport getColumnHeader()
Returns the JViewport
object that is the column header.
JViewport
object that is the column headerJScrollPane.getColumnHeader()
public Component getCorner(String key)
Returns the Component
at the specified corner.
key
- the String
specifying the cornerComponent
at the specified corner, as defined in ScrollPaneConstants
; if key
is not one of the four corners, null
is returnedJScrollPane.getCorner(java.lang.String)
public Dimension preferredLayoutSize(Container parent)
The preferred size of a ScrollPane
is the size of the insets, plus the preferred size of the viewport, plus the preferred size of the visible headers, plus the preferred size of the scrollbars that will appear given the current view and the current scrollbar displayPolicies.
Note that the rowHeader is calculated as part of the preferred width and the colHeader is calculated as part of the preferred size.
preferredLayoutSize
in interface LayoutManager
parent
- the Container
that will be laid outDimension
object specifying the preferred size of the viewport and any scrollbarsViewportLayout
, LayoutManager
public Dimension minimumLayoutSize(Container parent)
The minimum size of a ScrollPane
is the size of the insets plus minimum size of the viewport, plus the scrollpane's viewportBorder insets, plus the minimum size of the visible headers, plus the minimum size of the scrollbars whose displayPolicy isn't NEVER.
minimumLayoutSize
in interface LayoutManager
parent
- the Container
that will be laid outDimension
object specifying the minimum sizeLayoutManager.preferredLayoutSize(java.awt.Container)
public void layoutContainer(Container parent)
Lays out the scrollpane. The positioning of components depends on the following constraints:
displayPolicy
is ALWAYS, it's treated like the row header with respect to its dimensions and is made visible. null
viewportBorder
, then space is allocated for that. layoutContainer
in interface LayoutManager
parent
- the Container
to lay out@Deprecated public Rectangle getViewportBorderBounds(JScrollPane scrollpane)
Deprecated. As of JDK version Swing1.1 replaced by JScrollPane.getViewportBorderBounds()
.
Returns the bounds of the border around the specified scroll pane's viewport.
© 1993–2017, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.