Index: javax/swing/ScrollPaneLayout.java =================================================================== RCS file: /cvsroot/classpath/classpath/javax/swing/ScrollPaneLayout.java,v retrieving revision 1.19 diff -u -r1.19 ScrollPaneLayout.java --- javax/swing/ScrollPaneLayout.java 18 Oct 2005 09:50:39 -0000 1.19 +++ javax/swing/ScrollPaneLayout.java 27 Oct 2005 18:52:23 -0000 @@ -258,11 +258,18 @@ // parent is no JScrollPane, so do we. JScrollPane sc = (JScrollPane) parent; Dimension viewportSize = viewport.getPreferredSize(); + Dimension viewSize = viewport.getViewSize(); int width = viewportSize.width; int height = viewportSize.height; - if (hsb != null && hsb.isVisible()) + + // horizontal scrollbar needed if the view's preferred width + // is larger than the viewport's preferred width + if (hsb != null && viewSize.width > viewportSize.width) height += hsb.getPreferredSize().height; - if (vsb != null && vsb.isVisible()) + + // vertical scrollbar needed if the view's preferred height + // is larger than the viewport's preferred height + if (vsb != null && viewSize.height > viewportSize.height) width += vsb.getPreferredSize().width; if (rowHead != null && rowHead.isVisible()) width += rowHead.getPreferredSize().width;