JViewports с нулевыми макетами? - PullRequest
2 голосов
/ 09 ноября 2011

Я получил правильную прокрутку JViewport с помощью менеджера по умолчанию (используя viewport.setViewPosition), но когда я вызываю setLayout (null), это больше не работает.

Есть идеи?

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

Спасибо!

Редактировать: Спасибо за информацию.Я использовал нулевой макет, так что я могу абсолютно точно позиционировать компоненты, которые рисую позже, есть ли способ, с помощью которого я могу использовать диспетчер макета?

Ответы [ 3 ]

7 голосов
/ 09 ноября 2011

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

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

5 голосов
/ 09 ноября 2011

Не вызывайте setLayout (null) по любой причине.

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

0 голосов
/ 09 ноября 2011

Если вы вызываете setLayout (null), вам нужно вызывать метод setbounds класса Component для каждого дочернего элемента.Также вызовите метод перерисовки.

...