question: private Dimension layoutSize ( Container target , boolean preferred ) { synchronized ( target . getTreeLock ( ) ) { int targetWidth = target . getSize ( ) . width ; if ( targetWidth == 0 ) { targetWidth = Integer . MAX_VALUE ; } int hgap = getHgap ( ) ; int vgap = getVgap ( ) ; Insets insets = target . getInsets ( ) ; int horizontalInsetsAndGap = insets . left + insets . right + hgap * 2 ; int maxWidth = targetWidth - horizontalInsetsAndGap ; Dimension dim = new Dimension ( 0 , 0 ) ; int rowWidth = 0 ; int rowHeight = 0 ; int nmembers = target . getComponentCount ( ) ; for ( int i = 0 ; i < nmembers ; i ++ ) { Component m = target . getComponent ( i ) ; if ( m . isVisible ( ) ) { Dimension d = preferred ? m . getPreferredSize ( ) : m . getMinimumSize ( ) ; if ( rowWidth + d . width > maxWidth ) { addRow ( dim , rowWidth , rowHeight ) ; rowWidth = 0 ; rowHeight = 0 ; } if ( rowWidth != 0 ) { rowWidth += hgap ; } rowWidth += d . width ; rowHeight = Math . max ( rowHeight , d . height ) ; } } addRow ( dim , rowWidth , rowHeight ) ; dim . width += horizontalInsetsAndGap ; dim . height += insets . top + insets . bottom + vgap * 2 ; Container scrollPane = SwingUtilities . getAncestorOfClass ( JScrollPane . class , target ) ; if ( scrollPane != null && target . isValid ( ) ) { int extra = 1 ; if ( scrollPane instanceof JScrollPane ) { JScrollPane jsp = ( JScrollPane ) scrollPane ; JScrollBar vsb = jsp . getVerticalScrollBar ( ) ; if ( vsb != null ) { extra += Math . max ( 0 , vsb . getWidth ( ) ) ; } } dim . width -= hgap + extra ; } return dim ; } }
target:  Returns the minimum or preferred dimension needed to layout the target container.