简体   繁体   中英

How do I add ScrollPane to a panel in Java?

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?

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.

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM