sclass StackLayouter extends F1 { Map heights = weakHashMap(); int gap = 5; //int defaultHeight = 50; int preferredWidth = 300; Dimension get(Container parent) { Insets insets = parent.getInsets(); Dimension size = parent.getSize(); int y = insets.top; int width = size.width-insets.left-insets.right; L l = getComponents(parent); for (Component c : l) { Component c = l.get(i); bool big = contains(bigOnes, i); double H = heights.get(c); double h = H != null ? H : c.getPreferredSize().height; c.setBounds(insets.left, y, width, h); y += h+gap; } // return preferred size (hm.) ret new Dimension(preferredWidth, y+insets.bottom); }; }