Reputation: 287
I want to add different buttons, vertically stacked, to a JPanel
at run-time and use a JScrollPane
so that all buttons will be visible (with some scrolling).
In order to do this, I have added my JPanel
to a JScrollPane
, after which I add buttons to my JPanel
.
However, when I do this the vertical scrollbar does not allow me to see all images. For example when I add 7 buttons I can only scroll to see 5 full images and half of the 6 images.
Why doesn't my scrollbar allow me to display all 7 buttons?
Upvotes: 1
Views: 17067
Reputation: 66156
Make scroll pane a wrapper over your panel - new JScrollPane (myPanel)
and add it instead of naked panel in your panel's container.
You also may want to play with its setPreferredSize()
method.
Upvotes: 3
Reputation: 324078
Create the panel and scrollpane like:
JPanel panel = new JPanel();
JScrollPane scrollPane = new JScrollPane( panel );
When you add buttons to the panel at run time the code should be:
panel.add( button );
panel.revalidate();
As long as you are using a layout manager the preferred size will be recalculated and the scrollbar will appear.
Upvotes: 9