|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--javax.swing.ScrollPaneLayout
Safe: 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 java.beans.XMLEncoder
.
JScrollPane
,
JViewport
,
Serialized FormField 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. |
Constructor Summary | |
ScrollPaneLayout()
Enabled: |
Method Summary | |
void |
addLayoutComponent(String s,
Component c)
Suppressed: Adds the specified component to the layout. |
protected Component |
addSingletonComponent(Component oldC,
Component newC)
Removes an existing component. |
private void |
adjustForHSB(boolean wantsHSB,
Rectangle available,
Rectangle hsbR,
Insets vpbInsets)
Adjusts the Rectangle available based on if
the horizontal scrollbar is needed (wantsHSB ). |
private void |
adjustForVSB(boolean wantsVSB,
Rectangle available,
Rectangle vsbR,
Insets vpbInsets,
boolean leftToRight)
Adjusts the Rectangle available based on if
the vertical scrollbar is needed (wantsVSB ). |
JViewport |
getColumnHeader()
Enabled: Returns the JViewport object that is the column header. |
Component |
getCorner(String key)
Enabled: Returns the Component at the specified corner. |
JScrollBar |
getHorizontalScrollBar()
Enabled: Returns the JScrollBar object that handles horizontal scrolling. |
int |
getHorizontalScrollBarPolicy()
Enabled: Returns the horizontal scrollbar-display policy. |
JViewport |
getRowHeader()
Enabled: Returns the JViewport object that is the row header. |
JScrollBar |
getVerticalScrollBar()
Enabled: Returns the JScrollBar object that handles vertical scrolling. |
int |
getVerticalScrollBarPolicy()
Enabled: Returns the vertical scrollbar-display policy. |
JViewport |
getViewport()
Enabled: 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)
Enabled: Lays out the scrollpane. |
Dimension |
minimumLayoutSize(Container parent)
Enabled: 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)
Enabled: 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)
Enabled: Removes the specified component from the layout. |
void |
setHorizontalScrollBarPolicy(int x)
Enabled: Sets the horizontal scrollbar-display policy. |
void |
setVerticalScrollBarPolicy(int x)
Enabled: Sets the vertical scrollbar-display policy. |
void |
syncWithScrollPane(JScrollPane sp)
Suppressed: 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 |
Field Detail |
protected JViewport viewport
JViewport
.
JScrollPane.setViewport(javax.swing.JViewport)
protected JScrollBar vsb
JScrollBar
.
JScrollPane.setVerticalScrollBar(javax.swing.JScrollBar)
protected JScrollBar hsb
JScrollBar
.
JScrollPane.setHorizontalScrollBar(javax.swing.JScrollBar)
protected JViewport rowHead
null
.
JScrollPane.setRowHeader(javax.swing.JViewport)
protected JViewport colHead
null
.
JScrollPane.setColumnHeader(javax.swing.JViewport)
protected Component lowerLeft
null
.
JScrollPane.setCorner(java.lang.String, java.awt.Component)
protected Component lowerRight
null
.
JScrollPane.setCorner(java.lang.String, java.awt.Component)
protected Component upperLeft
null
.
JScrollPane.setCorner(java.lang.String, java.awt.Component)
protected Component upperRight
null
.
JScrollPane.setCorner(java.lang.String, java.awt.Component)
protected int vsbPolicy
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED
.
This field is obsolete, please use the JScrollPane
field instead.
JScrollPane.setVerticalScrollBarPolicy(int)
protected int hsbPolicy
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED
.
This field is obsolete, please use the JScrollPane
field instead.
JScrollPane.setHorizontalScrollBarPolicy(int)
Constructor Detail |
public ScrollPaneLayout()
Method Detail |
public void syncWithScrollPane(JScrollPane sp)
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)
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 add
newC
public void addLayoutComponent(String s, Component c)
addLayoutComponent
in interface LayoutManager
s
- the component identifierc
- the component to be addedpublic void removeLayoutComponent(Component c)
removeLayoutComponent
in interface LayoutManager
c
- the component to removepublic int getVerticalScrollBarPolicy()
setVerticalScrollBarPolicy(int)
public void setVerticalScrollBarPolicy(int x)
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 policypublic int getHorizontalScrollBarPolicy()
setHorizontalScrollBarPolicy(int)
public void setHorizontalScrollBarPolicy(int x)
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 policypublic JViewport getViewport()
JViewport
object that displays the
scrollable contents.
JViewport
object that displays the scrollable contentsJScrollPane.getViewport()
public JScrollBar getHorizontalScrollBar()
JScrollBar
object that handles horizontal scrolling.
JScrollBar
object that handles horizontal scrollingJScrollPane.getHorizontalScrollBar()
public JScrollBar getVerticalScrollBar()
JScrollBar
object that handles vertical scrolling.
JScrollBar
object that handles vertical scrollingJScrollPane.getVerticalScrollBar()
public JViewport getRowHeader()
JViewport
object that is the row header.
JViewport
object that is the row headerJScrollPane.getRowHeader()
public JViewport getColumnHeader()
JViewport
object that is the column header.
JViewport
object that is the column headerJScrollPane.getColumnHeader()
public Component getCorner(String key)
Component
at the specified corner.
key
- the String
specifying the corner
Component
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)
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 out
Dimension
object specifying the preferred size of the
viewport and any scrollbarsViewportLayout
,
LayoutManager
public Dimension minimumLayoutSize(Container parent)
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 out
Dimension
object specifying the minimum sizeLayoutManager.preferredLayoutSize(java.awt.Container)
public void layoutContainer(Container parent)
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 outprivate void adjustForVSB(boolean wantsVSB, Rectangle available, Rectangle vsbR, Insets vpbInsets, boolean leftToRight)
Rectangle
available
based on if
the vertical scrollbar is needed (wantsVSB
).
The location of the vsb is updated in vsbR
, and
the viewport border insets (vpbInsets
) are used to offset
the vsb. This is only called when wantsVSB
has
changed, eg you shouldn't invoke adjustForVSB(true) twice.
private void adjustForHSB(boolean wantsHSB, Rectangle available, Rectangle hsbR, Insets vpbInsets)
Rectangle
available
based on if
the horizontal scrollbar is needed (wantsHSB
).
The location of the hsb is updated in hsbR
, and
the viewport border insets (vpbInsets
) are used to offset
the hsb. This is only called when wantsHSB
has
changed, eg you shouldn't invoked adjustForHSB(true) twice.
public Rectangle getViewportBorderBounds(JScrollPane scrollpane)
JScrollPane.getViewportBorderBounds()
.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |