diff -BburN swing/src/main/java/common/javax/swing/plaf/basic/BasicSplitPaneUI.java swing.new/src/main/java/common/javax/swing/plaf/basic/BasicSplitPaneUI.java --- swing/src/main/java/common/javax/swing/plaf/basic/BasicSplitPaneUI.java 2007-08-08 08:27:44.000000000 +0800 +++ swing.new/src/main/java/common/javax/swing/plaf/basic/BasicSplitPaneUI.java 2007-08-08 08:29:23.000000000 +0800 @@ -382,6 +382,18 @@ splitPane.setDividerLocation(dividerLocation); } } + if ((components[RIGHT_COMPONENT_INDEX] != null) && (components[LEFT_COMPONENT_INDEX] == null)) { + dividerLocation = topLeft; + if (dividerLocation != splitPane.getDividerLocation() && isDisplayed) { + splitPane.setDividerLocation(dividerLocation); + } + } + if ((components[RIGHT_COMPONENT_INDEX] == null) && (components[LEFT_COMPONENT_INDEX] != null)) { + dividerLocation = containerSize - bottomRight - dividerSize; + if (dividerLocation != splitPane.getDividerLocation() && isDisplayed) { + splitPane.setDividerLocation(dividerLocation); + } + } } }