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
You will have to set the preferred width for the inner JScrollPane also. Otherwise, the GridBagLayout on the mainPanel allows the innner JScrollPane to increase as much as panel2's preferredSize. Try this