The design for my application goes like this.
I have a scroll pane, and i have added a panel say mainPanel to it.
Now i am adding two panels say panel1 and panel2 to it using grid bag layout.
But the panel2 can increase its size dynamically, so i added a scroll pane and to it the panel2.
Now whenever i want to increase the size i am calling the panel2.setpreferredSize();
and then panel2.revalidate.
The problem i am facing here is,
Some times (very few times

)it works perfectly with a scroll bar appearing only for panel2.
but most of the times te entire panel is getting a scroll bar. which is not required.
So can anyone help me out. Is this the problem with revalidate. or is there any alternatice