Как добавить ScrollPane на панель в Java? - PullRequest
1 голос
/ 17 февраля 2010

Я хочу добавить различные кнопки, расположенные вертикально, к JPanel во время выполнения и использовать JScrollPane, чтобы все кнопки были видны (с небольшой прокруткой).

Для этого я добавил свой JPanel к JScrollPane, после чего я добавил кнопки к своему JPanel.

Однако, когда я делаю это, вертикальная полоса прокрутки не позволяет мне видеть все изображения. Например, когда я добавляю 7 кнопок, я могу только прокрутить, чтобы увидеть 5 полных изображений и половину из 6 изображений.

Почему моя полоса прокрутки не позволяет мне отображать все 7 кнопок?

Ответы [ 2 ]

9 голосов
/ 17 февраля 2010

Создайте панель и полосу прокрутки, как:

JPanel panel = new JPanel();
JScrollPane scrollPane = new JScrollPane( panel );

Когда вы добавляете кнопки на панель во время выполнения, код должен быть:

panel.add( button );
panel.revalidate();

Пока вы используете менеджер макетов, предпочтительный размер будет пересчитан и появится полоса прокрутки.

3 голосов
/ 17 февраля 2010

Сделать панель прокрутки оберткой над панелью - new JScrollPane (myPanel) и добавить ее вместо голой панели в контейнер панели.

Вы также можете поиграть с его setPreferredSize() методом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...