import java.awt.*; /** * Insert the type's description here. * Creation date: (3/30/2000 4:10:35 PM) * @author: */ public class VerticalFlowLayout implements LayoutManager { private int vgap = 0; /** * VerticalFlowLayout constructor comment. */ public VerticalFlowLayout() { this(0); } /** * VerticalFlowLayout constructor comment. */ public VerticalFlowLayout(int vgap) { if (vgap < 0) { this.vgap = 0; } else { this.vgap = vgap; } } /** * addLayoutComponent method comment. */ public void addLayoutComponent(String name, Component comp) { } /** * layoutContainer method comment. */ public void layoutContainer(Container parent) { Insets insets = parent.getInsets(); int w = parent.getSize().width - insets.left - insets.right; // int h = parent.size().height - insets.top - insets.bottom; int numComponents = parent.getComponentCount(); if (numComponents == 0) { return; } int y = insets.top; int x = insets.left; for (int i = 0; i < numComponents; ++i) { Component c = parent.getComponent(i); if (c.isVisible()) { Dimension d = c.getPreferredSize(); c.setBounds(x, y, w, d.height); y += d.height + vgap; } } } /** * minimumLayoutSize method comment. */ public Dimension minimumLayoutSize(Container parent) { Insets insets = parent.getInsets(); int maxWidth = 0; int totalHeight = 0; int numComponents = parent.getComponentCount(); for (int i = 0; i < numComponents; ++i) { Component c = parent.getComponent(i); if (c.isVisible()) { Dimension cd = c.getMinimumSize(); maxWidth = Math.max(maxWidth, cd.width); totalHeight += cd.height; } } Dimension td = new Dimension(maxWidth + insets.left + insets.right, totalHeight + insets.top + insets.bottom + vgap * numComponents); return td; } /** * preferredLayoutSize method comment. */ public Dimension preferredLayoutSize(Container parent) { Insets insets = parent.getInsets(); int maxWidth = 0; int totalHeight = 0; int numComponents = parent.getComponentCount(); for (int i = 0; i < numComponents; ++i) { Component c = parent.getComponent(i); if (c.isVisible()) { Dimension cd = c.getPreferredSize(); maxWidth = Math.max(maxWidth, cd.width); totalHeight += cd.height; } } Dimension td = new Dimension(maxWidth + insets.left + insets.right, totalHeight + insets.top + insets.bottom + vgap * numComponents); return td; } /** * removeLayoutComponent method comment. */ public void removeLayoutComponent(Component comp) { } }