应该是计算在此Layout下所有可见的控件排列后的预定义大小,相当于
把所有控件按照其预定义size按layout排列的大小。
下面是FlowLayout的实现:
/**
     * Returns the preferred dimensions for this layout given the components
     * in the specified target container.
     * @param target the component which needs to be laid out
     * @return    the preferred dimensions to lay out the
     *                    subcomponents of the specified container.
     * @see Container
     * @see #minimumLayoutSize
     * @see       java.awt.Container#getPreferredSize
     */
    public Dimension preferredLayoutSize(Container target) {
      synchronized (target.getTreeLock()) {
Dimension dim = new Dimension(0, 0);
int nmembers = target.getComponentCount();
        boolean firstVisibleComponent = true; for (int i = 0 ; i < nmembers ; i++) {
    Component m = target.getComponent(i);
    if (m.visible) {
Dimension d = m.getPreferredSize();
dim.height = Math.max(dim.height, d.height);
                if (firstVisibleComponent) {
                    firstVisibleComponent = false;
                } else {
                    dim.width += hgap;
                }
dim.width += d.width;
    }
}
Insets insets = target.getInsets();
dim.width += insets.left + insets.right + hgap*2;
dim.height += insets.top + insets.bottom + vgap*2;
return dim;
      }
    }