Class ViewportLayout

Implemented Interfaces:
LayoutManager, Serializable

public class ViewportLayout
extends Object
implements LayoutManager, Serializable

The default layout for JViewport. The viewport makes its view the same size as itself, but not smaller than its minimum size. If the port extends extends into space past the edge of the view, this layout manager moves the port up or to the left, in view space, by the amount of empty space (keep the lower and right edges lined up).
See Also:
Serialized Form

Constructor Summary


Method Summary

addLayoutComponent(String name, Component c)
The method is not used with this manager.
layoutContainer(Container parent)
Layout the view and viewport to respect the following rules.
minimumLayoutSize(Container parent)
Get the minimum layout size.
preferredLayoutSize(Container parent)
Get the preferred layout size.
removeLayoutComponent(Component c)
The method is not used with this manager.

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details


public ViewportLayout()

Method Details


public void addLayoutComponent(String name,
                               Component c)
The method is not used with this manager.
Specified by:
addLayoutComponent in interface LayoutManager


public void layoutContainer(Container parent)
Layout the view and viewport to respect the following rules. These are not precisely the rules described in sun's javadocs, but they are the rules which sun's swing implementation follows, if you watch its behavior:
  1. If the port is smaller than the view, leave the view at its current size.
  2. If the view is smaller than the port, the view is top aligned.
  3. If the view tracks the port size, the view position is always zero and the size equal to the viewport size
  4. In JViewport.setViewSize(Dimension), the view size is never set smaller that its minimum size.
Specified by:
layoutContainer in interface LayoutManager


public Dimension minimumLayoutSize(Container parent)
Get the minimum layout size. Normally this method returns the value, returned by the view method Component.getMinimumSize(). If the view is not set, the zero size is returned.
Specified by:
minimumLayoutSize in interface LayoutManager
parent - the viewport
the minimum layout size.


public Dimension preferredLayoutSize(Container parent)
Get the preferred layout size. If the view implements Scrollable, this method returns Scrollable.getPreferredScrollableViewportSize(). Otherwise, it returns Component.getPreferredSize().
Specified by:
preferredLayoutSize in interface LayoutManager
the preferred layout size, as described about.


public void removeLayoutComponent(Component c)
The method is not used with this manager.
Specified by:
removeLayoutComponent in interface LayoutManager -- Copyright (C) 2002, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.