We help IT Professionals succeed at work.

Vertical Layout & Scrolling Issue

Xavior2K3
Xavior2K3 asked
on
Medium Priority
440 Views
Last Modified: 2012-06-27
Hi,

I have been having problems achieving the layout i want. My main panel is set to BorderLayout, i have a panel in the center and one on the left. This left panel is going to be a toolbox. I basically want the left panel to be 150px wide and simply have a column of buttons. I want each button to take up the whole 150px width. When the frame is resized and all of the buttons cant be displayed, i want a vertical scrollbar to appear.

I have tried using a toolContainer panel with FlowLayout, manually setting the preferred sizes of the buttons to 150px wide and setting the preferred size of the toolContainer to 150px width and 50px height (because im not really sure how many buttons i will have). This gives me the exact look im looking for, however, when i add a JScrollPane, because i've manually set the height of the toolContainer to a value, the scrolling doesnt kick in until the frame is less than the preferred height of the toolContainer. I'm not sure if this is the best method, but i tried setting up a loop that gets the height of all the components in the container and setting that as the preferred height and that seemed to work. So if there is a better way of creating this layout i'd love to know!!

But my main problem is that the scrollbars are acting very erratically. When the vertical scrollbar appears, it appears on the outside of the scrollpane (eg. there is 150px + width of the scrollbars), but then if i resize the frame just a little bit more, the scrollbar flicks to inside the panel (eg. width of container is 150px - width of scrollbars). Ideally i would always like the scrollbar to appear outside. Is there someway of controlling this?

I hope i've explained myself correctly!

Kind Regards,
Michael
Comment
Watch Question

Top Expert 2006

Commented:
I usually use TableLayout for complex guis
https://tablelayout.dev.java.net/

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts

Author

Commented:
Does gridbag not act like gridlayout in such a way that if i add lots of buttons, instead of the containerpanel getting larger, it reduces the size of the cells to fit everything, and hence the buttons get smaller?

Commented:
Gridbag is perfect in almost all aspect, you define all x and y location and the size of your component ;)
Top Expert 2006

Commented:
TableLayout can do whatever Gridbag is able to do and much more using less effort

Author

Commented:
Ok, i'll have a look into gridbag and tablelayout. What about the scrolling issue?

Commented:
can you post a screenshot of your scrollbar?

Author

Commented:
Hey, I have figured out what my problem was. Firstly I set all of the buttons perferred, maximum, and minimum size to the same dimension (Box layout seems to stretch and shrink things accordingly). Once i had fixed sizes the scrollbar seemed to work consistantly.

Does anyone know how you can set preferred heights but leave the layout manager to adjust the widths? This way when a scrollbar appears on the right, componants widths will be reduced to acommodate the scrollbar?

Commented:
Gridbag is the solution ;) you can also try the new layout presented in netbeans.
http://www.netbeans.org/kb/articles/matisse.html
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.