ScrollPaneLayout (Java 2 Platform SE 5.0) (original) (raw)


javax.swing

Class ScrollPaneLayout

java.lang.Object extended by javax.swing.ScrollPaneLayout

All Implemented Interfaces:

LayoutManager, Serializable, ScrollPaneConstants

Direct Known Subclasses:

ScrollPaneLayout.UIResource


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 JavaBeansTM has been added to the java.beans package. Please see XMLEncoder.

See Also:

JScrollPane, JViewport


Nested Class Summary
static class ScrollPaneLayout.UIResource The UI resource version of ScrollPaneLayout.
Field Summary
protected JViewport colHead The column header child.
protected JScrollBar hsb The scrollpane's horizontal scrollbar child.
protected int hsbPolicy 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 rowHead 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 JViewport viewport The scrollpane's viewport child.
protected JScrollBar vsb The scrollpane's vertical scrollbar child.
protected int vsbPolicy The display policy for the vertical scrollbar.
Fields inherited from interface javax.swing.ScrollPaneConstants
COLUMN_HEADER, HORIZONTAL_SCROLLBAR, HORIZONTAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_AS_NEEDED, HORIZONTAL_SCROLLBAR_NEVER, HORIZONTAL_SCROLLBAR_POLICY, LOWER_LEADING_CORNER, LOWER_LEFT_CORNER, LOWER_RIGHT_CORNER, LOWER_TRAILING_CORNER, ROW_HEADER, UPPER_LEADING_CORNER, UPPER_LEFT_CORNER, UPPER_RIGHT_CORNER, UPPER_TRAILING_CORNER, VERTICAL_SCROLLBAR, VERTICAL_SCROLLBAR_ALWAYS, VERTICAL_SCROLLBAR_AS_NEEDED, VERTICAL_SCROLLBAR_NEVER, VERTICAL_SCROLLBAR_POLICY, VIEWPORT
Constructor Summary
ScrollPaneLayout()
Method Summary
void [addLayoutComponent](../../javax/swing/ScrollPaneLayout.html#addLayoutComponent%28java.lang.String, java.awt.Component%29)(String s,Component c) Adds the specified component to the layout.
protected Component [addSingletonComponent](../../javax/swing/ScrollPaneLayout.html#addSingletonComponent%28java.awt.Component, java.awt.Component%29)(Component oldC,Component newC) Removes an existing component.
JViewport getColumnHeader() Returns the JViewport object that is the column header.
Component getCorner(String key) Returns the Component at the specified corner.
JScrollBar getHorizontalScrollBar() Returns the JScrollBar object that handles horizontal scrolling.
int getHorizontalScrollBarPolicy() Returns the horizontal scrollbar-display policy.
JViewport getRowHeader() Returns the JViewport object that is the row header.
JScrollBar getVerticalScrollBar() Returns the JScrollBar object that handles vertical scrolling.
int getVerticalScrollBarPolicy() Returns the vertical scrollbar-display policy.
JViewport getViewport() Returns the JViewport object that displays the scrollable contents.
Rectangle getViewportBorderBounds(JScrollPane scrollpane) Deprecated. As of JDK version Swing1.1 replaced by JScrollPane.getViewportBorderBounds().
void layoutContainer(Container parent) Lays out the scrollpane.
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.
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.
void removeLayoutComponent(Component c) Removes the specified component from the layout.
void setHorizontalScrollBarPolicy(int x) Sets the horizontal scrollbar-display policy.
void setVerticalScrollBarPolicy(int x) Sets the vertical scrollbar-display policy.
void syncWithScrollPane(JScrollPane sp) This method is invoked after the ScrollPaneLayout is set as the LayoutManager of a JScrollPane.
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, [wait](../../java/lang/Object.html#wait%28long, int%29)
Field Detail

viewport

protected JViewport viewport

The scrollpane's viewport child. Default is an empty JViewport.

See Also:

JScrollPane.setViewport(javax.swing.JViewport)


vsb

protected JScrollBar vsb

The scrollpane's vertical scrollbar child. Default is a JScrollBar.

See Also:

JScrollPane.setVerticalScrollBar(javax.swing.JScrollBar)


hsb

protected JScrollBar hsb

The scrollpane's horizontal scrollbar child. Default is a JScrollBar.

See Also:

JScrollPane.setHorizontalScrollBar(javax.swing.JScrollBar)


rowHead

protected JViewport rowHead

The row header child. Default is null.

See Also:

JScrollPane.setRowHeader(javax.swing.JViewport)


colHead

protected JViewport colHead

The column header child. Default is null.

See Also:

JScrollPane.setColumnHeader(javax.swing.JViewport)


lowerLeft

protected Component lowerLeft

The component to display in the lower left corner. Default is null.

See Also:

[JScrollPane.setCorner(java.lang.String, java.awt.Component)](../../javax/swing/JScrollPane.html#setCorner%28java.lang.String, java.awt.Component%29)


lowerRight

protected Component lowerRight

The component to display in the lower right corner. Default is null.

See Also:

[JScrollPane.setCorner(java.lang.String, java.awt.Component)](../../javax/swing/JScrollPane.html#setCorner%28java.lang.String, java.awt.Component%29)


upperLeft

protected Component upperLeft

The component to display in the upper left corner. Default is null.

See Also:

[JScrollPane.setCorner(java.lang.String, java.awt.Component)](../../javax/swing/JScrollPane.html#setCorner%28java.lang.String, java.awt.Component%29)


upperRight

protected Component upperRight

The component to display in the upper right corner. Default is null.

See Also:

[JScrollPane.setCorner(java.lang.String, java.awt.Component)](../../javax/swing/JScrollPane.html#setCorner%28java.lang.String, java.awt.Component%29)


vsbPolicy

protected int vsbPolicy

The display policy for the vertical scrollbar. The default is JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED.

This field is obsolete, please use the JScrollPane field instead.

See Also:

JScrollPane.setVerticalScrollBarPolicy(int)


hsbPolicy

protected int hsbPolicy

The display policy for the horizontal scrollbar. The default is JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED.

This field is obsolete, please use the JScrollPane field instead.

See Also:

JScrollPane.setHorizontalScrollBarPolicy(int)

Constructor Detail

ScrollPaneLayout

public ScrollPaneLayout()

Method Detail

syncWithScrollPane

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):

addSingletonComponent

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.

Parameters:

oldC - the Component to replace

newC - the Component to add

Returns:

the newC


addLayoutComponent

public void addLayoutComponent(String s, Component c)

Adds the specified component to the layout. The layout is identified using one of:

Specified by:

[addLayoutComponent](../../java/awt/LayoutManager.html#addLayoutComponent%28java.lang.String, java.awt.Component%29) in interface [LayoutManager](../../java/awt/LayoutManager.html "interface in java.awt")

Parameters:

s - the component identifier

c - the the component to be added

Throws:

[IllegalArgumentException](../../java/lang/IllegalArgumentException.html "class in java.lang") - if s is an invalid key


removeLayoutComponent

public void removeLayoutComponent(Component c)

Removes the specified component from the layout.

Specified by:

[removeLayoutComponent](../../java/awt/LayoutManager.html#removeLayoutComponent%28java.awt.Component%29) in interface [LayoutManager](../../java/awt/LayoutManager.html "interface in java.awt")

Parameters:

c - the component to remove


getVerticalScrollBarPolicy

public int getVerticalScrollBarPolicy()

Returns the vertical scrollbar-display policy.

Returns:

an integer giving the display policy

See Also:

setVerticalScrollBarPolicy(int)


setVerticalScrollBarPolicy

public void setVerticalScrollBarPolicy(int x)

Sets the vertical scrollbar-display policy. The options are:

Parameters:

x - an integer giving the display policy

Throws:

[IllegalArgumentException](../../java/lang/IllegalArgumentException.html "class in java.lang") - if x is an invalid vertical scroll bar policy, as listed above


getHorizontalScrollBarPolicy

public int getHorizontalScrollBarPolicy()

Returns the horizontal scrollbar-display policy.

Returns:

an integer giving the display policy

See Also:

setHorizontalScrollBarPolicy(int)


setHorizontalScrollBarPolicy

public void setHorizontalScrollBarPolicy(int x)

Sets the horizontal scrollbar-display policy. The options are:

Parameters:

x - an int giving the display policy

Throws:

[IllegalArgumentException](../../java/lang/IllegalArgumentException.html "class in java.lang") - if x is not a valid horizontal scrollbar policy, as listed above


getViewport

public JViewport getViewport()

Returns the JViewport object that displays the scrollable contents.

Returns:

the JViewport object that displays the scrollable contents

See Also:

JScrollPane.getViewport()


getHorizontalScrollBar

public JScrollBar getHorizontalScrollBar()

Returns the JScrollBar object that handles horizontal scrolling.

Returns:

the JScrollBar object that handles horizontal scrolling

See Also:

JScrollPane.getHorizontalScrollBar()


getVerticalScrollBar

public JScrollBar getVerticalScrollBar()

Returns the JScrollBar object that handles vertical scrolling.

Returns:

the JScrollBar object that handles vertical scrolling

See Also:

JScrollPane.getVerticalScrollBar()


getRowHeader

public JViewport getRowHeader()

Returns the JViewport object that is the row header.

Returns:

the JViewport object that is the row header

See Also:

JScrollPane.getRowHeader()


getColumnHeader

public JViewport getColumnHeader()

Returns the JViewport object that is the column header.

Returns:

the JViewport object that is the column header

See Also:

JScrollPane.getColumnHeader()


getCorner

public Component getCorner(String key)

Returns the Component at the specified corner.

Parameters:

key - the String specifying the corner

Returns:

the Component at the specified corner, as defined inScrollPaneConstants; if key is not one of the four corners, null is returned

See Also:

JScrollPane.getCorner(java.lang.String)


preferredLayoutSize

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.

Specified by:

[preferredLayoutSize](../../java/awt/LayoutManager.html#preferredLayoutSize%28java.awt.Container%29) in interface [LayoutManager](../../java/awt/LayoutManager.html "interface in java.awt")

Parameters:

parent - the Container that will be laid out

Returns:

a Dimension object specifying the preferred size of the viewport and any scrollbars

See Also:

ViewportLayout, LayoutManager


minimumLayoutSize

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.

Specified by:

[minimumLayoutSize](../../java/awt/LayoutManager.html#minimumLayoutSize%28java.awt.Container%29) in interface [LayoutManager](../../java/awt/LayoutManager.html "interface in java.awt")

Parameters:

parent - the Container that will be laid out

Returns:

a Dimension object specifying the minimum size

See Also:

LayoutManager.preferredLayoutSize(java.awt.Container)


layoutContainer

public void layoutContainer(Container parent)

Lays out the scrollpane. The positioning of components depends on the following constraints:

Specified by:

[layoutContainer](../../java/awt/LayoutManager.html#layoutContainer%28java.awt.Container%29) in interface [LayoutManager](../../java/awt/LayoutManager.html "interface in java.awt")

Parameters:

parent - the Container to lay out


getViewportBorderBounds

@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.

Returns:

the size and position of the viewport border



Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright © 2004, 2010 Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.