Java - JPanel и его содержание, как устанавливать границы - PullRequest
2 голосов
/ 02 января 2012

У меня есть 3 JPanels на моем JFrame. В любом случае JPanels расширяются по вертикали и горизонтали, поскольку размер JFrame изменяется, они привязаны к JFrame.

Мне интересно, как мне установить JScrollPane, которая находится внутри одной из JPanels, на привязку к этой JPanel, так что, если эта JPanel изменяется в размере, то и JScrollPane внутри нее.

Ответы [ 2 ]

3 голосов
/ 02 января 2012

Если у вас есть JPanel, содержащий только один JComponent, который должен масштабироваться вместе с панелью, одним из самых простых вариантов диспетчера компоновки является BorderLayout и добавление содержимого в центре

JPanel panel = new JPanel( new BorderLayout() );
JComponent componentToAdd = ...;
panel.add( componentToAdd, BorderLayout.CENTER );

Существует целый Swing учебник по различным менеджерам компоновки, который описывает, в каких ситуациях разные менеджеры наиболее подходят

2 голосов
/ 02 января 2012

Для этого потребуется предоставить JPanel правильный макет, такой как BorderLayout, GridLayout, BoxLayout или другой, в зависимости от необходимости (но не макет JPanel по умолчанию - FlowLayout - который не меняет предпочитаемый размер удерживаемых компонентов) .. Если BorderLayout, то добавьте JPanel BorderLayout.CENTER (или снова в другую позицию в зависимости от необходимости).Если вы не знакомы с основными макетами, вам нужно прочитать и изучить учебные пособия, которые можно найти здесь:

Урок: Размещение компонентов в контейнере

...